Bagian ini menunjukkan aktivitas membaca data jumlah langkah harian saat ini menggunakan Fit Android API dan Fit REST API.
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 pada akun zona waktu 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 informasi selengkapnya tentang bekerja dengan sumber data gabungan, lihat Bekerja dengan Histori Kebugaran.
Aplikasi Anda dapat membaca total jumlah langkah harian saat ini di semua data
sumber dengan membuat permintaan POST
dan melakukan 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 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