Bagian ini menunjukkan cara membaca 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 hari ini pada zona waktu perangkat saat ini.
Untuk mendapatkan jumlah langkah harian yang sama dengan 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 mengetahui informasi selengkapnya tentang cara menggunakan sumber data gabungan, lihat Menggunakan Histori Kebugaran.
REST
Aplikasi Anda dapat membaca total jumlah langkah harian saat ini di semua sumber data dengan membuat permintaan POST dan mengkueri jenis data com.google.step_count.delta untuk jangka waktu yang ditentukan.
Metode HTTP
POST
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 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