Прочитайте общее количество шагов за день

В этом разделе показано считывание текущих данных о количестве шагов за день с помощью API Fit Android и Fit REST API.

Ваше приложение может считать текущее общее количество шагов за день, вызвав HistoryClient.readDailyTotal , как показано в следующем примере:

Fitness.getHistoryClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
   
.readDailyTotal(DataType.TYPE_STEP_COUNT_DELTA)
   
.addOnSuccessListener { result ->
       
val totalSteps =
            result
.dataPoints.firstOrNull()?.getValue(Field.FIELD_STEPS)?.asInt() ?: 0
       
// Do something with totalSteps
   
}
   
.addOnFailureListener { e ->
       
Log.i(TAG, "There was a problem getting steps.", e)
   
}

Сумма за день рассчитывается с полуночи текущего дня в текущем часовом поясе устройства.

Чтобы получить такое же количество шагов за день, как и в приложении Fit, создайте источник данных с помощью пакета приложения com.google.android.gms , как показано в следующем примере:

val startTime = LocalDate.now().atStartOfDay(ZoneId.systemDefault())
val endTime = LocalDateTime.now().atZone(ZoneId.systemDefault())

val datasource = DataSource.Builder()
   
.setAppPackageName("com.google.android.gms")
   
.setDataType(DataType.TYPE_STEP_COUNT_DELTA)
   
.setType(DataSource.TYPE_DERIVED)
   
.setStreamName("estimated_steps")
   
.build()

val request = DataReadRequest.Builder()
   
.aggregate(datasource)
   
.bucketByTime(1, TimeUnit.DAYS)
   
.setTimeRange(startTime.toEpochSecond(), endTime.toEpochSecond(), TimeUnit.SECONDS)
   
.build()

Fitness.getHistoryClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
   
.readData(request)
   
.addOnSuccessListener { response ->
       
val totalSteps = response.buckets
           
.flatMap { it.dataSets }
           
.flatMap { it.dataPoints }
           
.sumBy { it.getValue(Field.FIELD_STEPS).asInt() }
       
Log.i(TAG, "Total steps: $totalSteps")
   
}

Дополнительную информацию о работе с агрегированными источниками данных см. в разделе Работа с историей фитнеса .

Ваше приложение может считывать текущее общее количество шагов за день по всем источникам данных, выполнив запрос POST и запросив тип данных com.google.step_count.delta за указанный период времени.

HTTP-метод

ПОЧТА

URL-адрес запроса

https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate

Тело запроса

{
 
"aggregateBy": [{
   
"dataTypeName": "com.google.step_count.delta",
   
"dataSourceId": "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
 
}],
 
"bucketByTime": { "durationMillis": 86400000 },
 
"startTimeMillis": 1438705622000,
 
"endTimeMillis": 1439310422000
}

Команда скручивания

curl \
-X POST \
-H "Content-Type: application/json;encoding=utf-8" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d @aggregate.json \
https
://www.googleapis.com/fitness/v1/users/me/dataset:aggregate