Lire le total de pas quotidiens

Cette section explique comment lire les données actuelles du nombre de pas quotidien à l'aide de l'API Fit pour Android et de l'API REST Fit.

Android

Votre application peut lire le total de pas quotidiens actuels 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 le fuseau horaire actuel de l'appareil.

Pour obtenir le même nombre de pas quotidien que l'application Fit, créez une source de données à l'aide du package com.google.android.gmsapp, comme indiqué 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 de sources de données globales, consultez la page Utiliser l'historique de remise en forme.

REST

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

Méthode HTTP

POST

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