Leer el total de pasos diarios

En esta sección, se muestra cómo leer los datos actuales del recuento de pasos diarios con la API de Fit para Android y la API de REST de Fit.

Android

Tu app puede leer el total de pasos diarios actual 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 diarios que la app de Fit, crea una fuente de datos con 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 Trabaja con el historial de actividad física.

REST

Tu app puede leer el recuento de pasos diarios actual en todas las fuentes de datos realizando una solicitud POST y consultando el tipo de datos 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 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