Questa sezione mostra la lettura dei dati correnti relativi al conteggio dei passi giornaliero usando l'app Fit API Android e API REST Fit.
Android
La tua app può leggere il totale di passi giornaliero corrente 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 a partire dalla mezzanotte del giorno corrente sulla fuso orario attuale.
Per ottenere lo stesso numero di passi giornaliero dell'app Fit, crea un'origine dati utilizzando
il pacchetto dell'app 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 Utilizza la cronologia del fitness.
REST
La tua app può leggere il numero totale di passi giornaliero corrente in tutti i 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 di 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