Esta sección muestra cómo leer los datos del recuento de pasos diarios actuales con Fit La API de Android y la API de REST de Fit.
Tu app puede leer el total actual de pasos diarios llamando
HistoryClient.readDailyTotal
:
como se muestra en el siguiente ejemplo:
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) }
El total diario se calcula a partir de la medianoche del día actual en la de la zona horaria actual.
Para obtener el mismo recuento de pasos diarios que la app de Fit, crea una fuente de datos usando
el paquete de app com.google.android.gms
, como se muestra en el siguiente ejemplo:
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") }
Para obtener más información sobre cómo trabajar con fuentes de datos agregados, consulta Trabajar con el Historial de entrenamiento
La app puede leer el recuento total de pasos diarios actual en todos los datos.
a través de una solicitud POST
y consultando
Es el tipo de datos de com.google.step_count.delta
para el período especificado.
Método HTTP
PUBLICAR
Request URL (URL de solicitud)
https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate
Cuerpo de la solicitud
{
"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
}
Comando de Curl
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