Lire le total de pas quotidiens

Cette section explique comment lire les données actuelles sur le nombre de pas quotidiens à l'aide de l'application Fit. API Android et API REST Fit.

Android

Votre application peut lire le nombre total de pas quotidiens actuel en appelant HistoryClient.readDailyTotal, comme illustré dans l'exemple suivant:

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)
    }

Le total quotidien est calculé à partir de minuit de la journée en cours sur l'appareil fuseau horaire actuel.

Pour obtenir le même nombre de pas quotidiens que l'application Fit, créez une source de données à l'aide de le package d'application com.google.android.gms, comme illustré dans l'exemple suivant:

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")
    }

Pour en savoir plus sur l'utilisation des sources de données agrégées, consultez Utiliser l'historique de remise en forme

REST

Votre appli peut lire le nombre total de pas quotidiens actuel pour toutes les données sources en envoyant une requête POST et en interrogeant les Type de données com.google.step_count.delta pour la période spécifiée.

Méthode HTTP

PUBLIER

URL de la requête

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

Corps de la requête

{
  "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
}

Commande 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