Tägliche Schrittgesamtsumme lesen

In diesem Abschnitt wird das Lesen der aktuellen täglichen Schrittzahl mithilfe der Fit Android API und Fit REST API

Android

Deine App kann die aktuelle tägliche Schrittzahl abrufen, indem sie HistoryClient.readDailyTotal, Dies wird im folgenden Beispiel gezeigt:

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)
    }

Die Tagesgesamtsumme wird ab Mitternacht des aktuellen Tages auf dem in der aktuellen Zeitzone.

Um dieselbe tägliche Schrittzahl wie in der Fit App zu erhalten, erstellen Sie eine Datenquelle mit das App-Paket com.google.android.gms, wie im folgenden Beispiel gezeigt:

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")
    }

Weitere Informationen zum Arbeiten mit aggregierten Datenquellen finden Sie unter Arbeiten Sie mit dem Fitnessverlauf.

REST

Deine App kann die aktuelle tägliche Schrittzahl über alle Daten hinweg lesen mit einer POST-Anfrage und der Abfrage des Datentyp com.google.step_count.delta für den angegebenen Zeitraum.

HTTP-Methode

POSTEN

Anfrage-URL

https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate

Anfragetext

{
  "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
}

Curl-Befehl

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