Android — HealthConnectClient.readRecords или агрегатGroupByPeriod занимает вечность

Приведенные ниже коды выполняются вечно. Получите его из официальных документов. HealthConnect установлен на устройстве. Я считаю, что есть внутренняя ошибка, которую я не вижу в журналах IDE. Код вызывается изjavaсорт.

Что может быть причиной этого?

      companion object {
    fun readStepsByTimeRange(
        healthConnectClient: HealthConnectClient,
        startTime: Instant,
        endTime: Instant
    ) : CompletableFuture<Long> = GlobalScope.future {
        innerReadStepsByTimeRange(healthConnectClient, startTime, endTime)
    }

    private suspend fun innerReadStepsByTimeRange (
        healthConnectClient: HealthConnectClient,
        startTime: Instant,
        endTime: Instant
    ) : Long {
        /*var totalStepsCount = 0L
        val response =
            healthConnectClient.readRecords(
                ReadRecordsRequest(
                    StepsRecord::class,
                    timeRangeFilter = TimeRangeFilter.between(startTime, endTime)
                )
            )
        for (stepRecord in response.records) {
            totalStepsCount += stepRecord.count;
        }
        return totalStepsCount*/
        val startTime = LocalDateTime.now().minusMonths(1)
        val endTime = LocalDateTime.now()

        try {

            val response =
                healthConnectClient.aggregateGroupByPeriod(
                    AggregateGroupByPeriodRequest(
                        metrics = setOf(StepsRecord.COUNT_TOTAL),
                        timeRangeFilter = TimeRangeFilter.between(startTime, endTime),
                        timeRangeSlicer = Period.ofDays(1)
                    )
                )

            return response[0].result[StepsRecord.COUNT_TOTAL]!!
        }catch (e: Exception) {
            return -1
        }
    }
}

Код вызывающей стороны Java ниже

      CompletableFuture<Long> totalStepsCountCF = StepReaderUtils.Companion.readStepsByTimeRange(
        healthConnectClient, startDate, endDate);
return totalStepsCountCF.get();

build.gradle

      implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.0'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0'
implementation "androidx.health.connect:connect-client:1.0.0-alpha08"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.4"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4"

0 ответов

Другие вопросы по тегам