Google Fit API, termasuk Google Fit REST API, tidak akan tersedia lagi setelah 30 Juni 2025. Mulai 1 Mei 2024, developer tidak dapat mendaftar untuk menggunakan API ini.
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Contoh ini menunjukkan cara membuat klien Fitness API.
Buat klien API seperti berikut:
Buat instance FitnessOptions, yang mendeklarasikan
jenis data dan jenis akses (membaca dan/atau menulis) aplikasi Anda
kebutuhan:
val fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.build()
Dapatkan instance objek Account untuk digunakan dengan API:
val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
Periksa apakah sebelumnya pengguna telah memberikan akses data yang diperlukan, dan apakah
tidak, mulai alur otorisasi:
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
GoogleSignIn.requestPermissions(
this, // your activity
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE, // e.g. 1
account,
fitnessOptions)
} else {
accessGoogleFit()
}
Jika alur otorisasi diperlukan, tangani respons pengguna:
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
}
}
}
Setelah pengguna memiliki akses sah ke data yang diminta, buat kebugaran
klien (misalnya, HistoryClient untuk membaca dan/atau menulis data kebugaran historis
data) berdasarkan tujuan dan kebutuhan aplikasi Anda:
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) })
}