Проблема в том, что когда я использую AggregateRequest, я получаю огромные числа, тогда как если я меняю его на ReadRecordsRequest, я вообще не получаю никаких результатов.
Вот что я имею в виду в коде.
Код: Выделить всё
suspend fun readCaloriesBurned(start: Instant, end: Instant): Energy {
val request = AggregateRequest(
metrics = setOf(TotalCaloriesBurnedRecord.ENERGY_TOTAL),
timeRangeFilter = TimeRangeFilter.between(start, end)
)
val response = healthConnectClient.aggregate(request)
Timber.d(response.toString())
return response[TotalCaloriesBurnedRecord.ENERGY_TOTAL] ?: Energy.calories(0.0)
}
Код: Выделить всё
AggregationResult(longValues={}, doubleValues={TotalCaloriesBurned_energy_total=1632.6842894415279}, dataOrigins=[])
Теперь, если я изменю этот запрос (сохраню те же даты начала и окончания, но изменю тип запроса), я получу совершенно другой результат...
Код: Выделить всё
suspend fun readCaloriesBurned(start: Instant, end: Instant): Energy {
val request = ReadRecordsRequest(
recordType = TotalCaloriesBurnedRecord::class,
timeRangeFilter = TimeRangeFilter.between(start, end)
)
val response = healthConnectClient.readRecords(request)
Timber.d("How many records are there? ${response.records.size}")
Timber.d(response.records.toString())
return Energy.calories(0.0)
}
Код: Выделить всё
How many records are there? 0
[]
Я пытаюсь выяснить, как я могу это согласовать. Нужно ли мне полностью отказаться от совокупных запросов и буквально только forEach в запросе на чтение записей? Почему в совокупном запросе указано, что я сжег более миллиона калорий, а в запросе записей указано, что записей нет?
Подробнее здесь: https://stackoverflow.com/questions/796 ... -responses
Мобильная версия