Baca Total Langkah Harian

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