Phần này minh hoạ cách đọc dữ liệu về số bước đi hằng ngày hiện tại bằng ứng dụng Fit API Android và API Fit REST.
Ứng dụng của bạn có thể đọc tổng số bước hiện tại trong ngày bằng cách gọi
HistoryClient.readDailyTotal
!
như trong ví dụ sau:
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) }
Tổng số hằng ngày được tính từ nửa đêm của ngày hiện tại trên thiết bị múi giờ hiện tại.
Để nhận được số bước hằng ngày giống với số bước trong ứng dụng Fit, hãy tạo một nguồn dữ liệu bằng cách sử dụng
gói ứng dụng com.google.android.gms
, như trong ví dụ sau:
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") }
Để biết thêm thông tin về cách làm việc với các nguồn dữ liệu tổng hợp, hãy xem Làm việc với Nhật ký tập thể dục.
Ứng dụng của bạn có thể đọc tổng số bước hiện tại hằng ngày trên tất cả dữ liệu
bằng cách gửi yêu cầu POST
và truy vấn
Loại dữ liệu com.google.step_count.delta
trong khoảng thời gian cụ thể.
Phương thức HTTP
ĐĂNG
URL yêu cầu
https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate
Nội dung yêu cầu
{
"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
}
Lệnh 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