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