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