Cette section explique comment lire les données actuelles du nombre de pas quotidiens à l'aide de l'API Android Fit et de l'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 le jour même, dans 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 d'application com.google.android.gms, 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 des sources de données agrégées, consultez Utiliser l'historique de forme physique.
REST
Votre application peut lire le nombre total de pas quotidiens actuel pour toutes les sources de données en envoyant 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