Leer el total de pasos diarios

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