Bagian ini menunjukkan pembacaan data jumlah langkah harian saat ini menggunakan Fit Android API dan Fit REST API.
Android
Aplikasi Anda dapat membaca total langkah harian saat ini dengan memanggil
HistoryClient.readDailyTotal
,
seperti yang ditunjukkan dalam contoh berikut:
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) }
Total harian dihitung dari tengah malam pada hari ini di zona waktu perangkat saat ini.
Untuk mendapatkan jumlah langkah harian yang sama seperti aplikasi Fit, buat sumber data menggunakan
paket aplikasi com.google.android.gms
, seperti yang ditunjukkan dalam contoh berikut:
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") }
Untuk informasi selengkapnya tentang cara menggunakan sumber data gabungan, lihat Bekerja dengan Histori Kebugaran.
REST
Aplikasi Anda dapat membaca total jumlah langkah harian saat ini di semua sumber
data dengan membuat permintaan POST
dan membuat kueri
jenis data com.google.step_count.delta
untuk jangka waktu yang ditentukan.
Metode HTTP
POSTING
URL Permintaan
https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate
Isi permintaan
{
"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
}
Perintah CLI
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