Lettura del totale di passi giornaliero

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