Код: Выделить всё
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)
}
< /code>
Теперь, когда я запускаю, я вижу в консоли ... < /p>
AggregationResult(longValues={}, doubleValues={TotalCaloriesBurned_energy_total=1632.6842894415279}, dataOrigins=[])
< /code>
Показывая, что в общей сложности было сожжено 1632 ккала за этот период (что абсолютно неправильно). < /p>
Теперь, если я изменю этот запрос (сохранить этот начало и окончание датируется тем же, но изменяю тип запроса), я получу совершенно другой результат ... < /p>
and датируется тем же, но изменяю тип запроса), я получу совершенно другой результат ... < /p>
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)
}
< /code>
Теперь, если я запускаю это, в консоли я вижу ... < /p>
How many records are there? 0
[]
< /code>
Таким образом, выполнение совокупности для сегодняшнего дня (начало дня до настоящего времени) говорит, что я сгорел в общей сложности более 1 миллиона калорий, однако выполнение запроса на чтение записей говорит, что вообще нет записей за тот же период времени (начало дня, чтобы рассчитывать на это). Нужно ли мне отказаться от совокупных запросов все вместе и буквально просто предварительно предварительно Подробнее здесь: https://stackoverflow.com/questions/796 ... -responses