In diesem Abschnitt wird gezeigt, wie Sie aktuelle Daten zur täglichen Schrittzahl mit der Fit Android API und der Fit REST API lesen.
Android
Ihre App kann die aktuelle tägliche Schrittzahl mit dem Aufruf von
HistoryClient.readDailyTotal,
lesen, wie 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 tägliche Gesamtzahl wird ab Mitternacht des aktuellen Tages in der aktuellen Zeitzone des Geräts berechnet.
Wenn Sie dieselbe tägliche Schrittzahl wie in der Fit App erhalten möchten, erstellen Sie eine Datenquelle mit dem 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 Mit dem Fitnessverlauf arbeiten.
REST
Ihre App kann die aktuelle tägliche Schrittzahl aus allen Datenquellen lesen, indem sie eine POST-Anfrage sendet und den Datentyp com.google.step_count.delta für den angegebenen Zeitraum abfragt.
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