API Google Fit, bao gồm cả API Google Fit REST, sẽ ngừng hoạt động sau ngày 30 tháng 6 năm 2025. Kể từ ngày 1 tháng 5 năm 2024, nhà phát triển không thể đăng ký sử dụng các API này.
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Ví dụ này minh hoạ cách tạo ứng dụng Fitness API.
Tạo ứng dụng API như sau:
Tạo một thực thể FitnessOptions, khai báo
các loại dữ liệu và loại quyền truy cập (đọc và/hoặc ghi) ứng dụng của bạn
cần:
val fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.build()
Lấy một thực thể của đối tượng Account để sử dụng với API:
val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
Kiểm tra xem trước đây người dùng đã cấp quyền truy cập cần thiết vào dữ liệu hay chưa, và
không, hãy bắt đầu quy trình uỷ quyền:
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
GoogleSignIn.requestPermissions(
this, // your activity
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE, // e.g. 1
account,
fitnessOptions)
} else {
accessGoogleFit()
}
Nếu quy trình uỷ quyền là bắt buộc, hãy xử lý phản hồi của người dùng:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (resultCode) {
Activity.RESULT_OK -> when (requestCode) {
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE -> accessGoogleFit()
else -> {
// Result wasn't from Google Fit
}
}
else -> {
// Permission not granted
}
}
}
Sau khi người dùng cấp quyền truy cập vào dữ liệu được yêu cầu, hãy tạo một
ứng dụng khách (ví dụ: HistoryClient để đọc và/hoặc ghi dữ liệu về hoạt động thể dục trước đây
dựa trên mục đích và nhu cầu của ứng dụng:
private fun accessGoogleFit() {
val end = LocalDateTime.now()
val start = end.minusYears(1)
val endSeconds = end.atZone(ZoneId.systemDefault()).toEpochSecond()
val startSeconds = start.atZone(ZoneId.systemDefault()).toEpochSecond()
val readRequest = DataReadRequest.Builder()
.aggregate(DataType.AGGREGATE_STEP_COUNT_DELTA)
.setTimeRange(startSeconds, endSeconds, TimeUnit.SECONDS)
.bucketByTime(1, TimeUnit.DAYS)
.build()
val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
Fitness.getHistoryClient(this, account)
.readData(readRequest)
.addOnSuccessListener({ response ->
// Use response data here
Log.i(TAG, "OnSuccess()")
})
.addOnFailureListener({ e -> Log.d(TAG, "OnFailure()", e) })
}