อ่านผลรวมจำนวนก้าวรายวัน

ส่วนนี้แสดงวิธีอ่านข้อมูลจำนวนก้าวรายวันปัจจุบันโดยใช้ Fit Android API และ Fit REST API

Android

แอปของคุณสามารถอ่านจำนวนก้าวทั้งหมดรายวันปัจจุบันได้โดยเรียกใช้ HistoryClient.readDailyTotal, ดังที่แสดงในตัวอย่างต่อไปนี้

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)
    }

ระบบจะคำนวณจำนวนทั้งหมดรายวันจากเวลาเที่ยงคืนของวันปัจจุบันในเขตเวลาปัจจุบันของอุปกรณ์

หากต้องการรับจำนวนก้าวรายวันแบบเดียวกับแอป Fit ให้สร้างแหล่งข้อมูลโดยใช้แพ็กเกจแอป com.google.android.gms ดังที่แสดงในตัวอย่างต่อไปนี้

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")
    }

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้แหล่งข้อมูลแบบรวมได้ที่หัวข้อ การใช้ประวัติการออกกำลังกาย

REST

แอปของคุณสามารถอ่านจำนวนก้าวทั้งหมดรายวันปัจจุบันจากแหล่งข้อมูลทั้งหมดได้โดยส่งคำขอ POST และค้นหาประเภทข้อมูล com.google.step_count.delta สำหรับระยะเวลาที่ระบุ

เมธอด HTTP

POST

URL ของคำขอ

https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate

เนื้อความของคำขอ

{
  "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
}

คำสั่ง 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