Baca Total Langkah Harian

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