Lettura del totale di passi giornaliero

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