Questa sezione mostra come leggere i dati del conteggio dei passi giornalieri attuali utilizzando l'API Android Fit e l'API REST Fit.
Android
La tua app può leggere il totale dei passi giornalieri attuali chiamando
HistoryClient.readDailyTotal,
come mostrato nell'esempio seguente:
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) }
Il totale giornaliero viene calcolato dalla mezzanotte del giorno corrente nel fuso orario attuale del dispositivo.
Per ottenere lo stesso conteggio dei passi giornalieri dell'app Fit, crea un'origine dati utilizzando il pacchetto applicativo com.google.android.gms, come mostrato nell'esempio seguente:
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") }
Per ulteriori informazioni sull'utilizzo delle origini dati aggregate, consulta Utilizzare la cronologia di Fitness.
REST
La tua app può leggere il totale del conteggio dei passi giornalieri attuali in tutte le origini dati effettuando una richiesta POST ed eseguendo una query sul tipo di dati com.google.step_count.delta per il periodo di tempo specificato.
Metodo HTTP
PUBBLICA
URL della richiesta
https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate
Corpo della richiesta
{
"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 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