En esta sección, se muestra cómo leer datos diarios del recuento de pasos mediante la API de Fit para Android y la API de REST de Fit.
Android
Tu app puede leer el total diario actual de pasos llamando a 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 zona horaria actual del dispositivo.
Para obtener el mismo recuento de pasos diario que en la app de Fit, crea una fuente de datos mediante
el paquete de la 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 agregadas, consulta Cómo trabajar con el Historial de entrenamiento.
REST
Tu app puede leer el total actual de pasos diarios en todas las fuentes de datos si realiza una solicitud POST
y consulta el tipo de datos com.google.step_count.delta
durante el período especificado.
Método HTTP
POST
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 url
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