ส่วนนี้สาธิตการอ่านข้อมูลจำนวนก้าวรายวันในปัจจุบันโดยใช้ 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