Google Fit REST API dahil olmak üzere Google Fit API'leri, 30 Haziran 2025'ten sonra kullanılamayacak. 1 Mayıs 2024'ten itibaren geliştiriciler bu API'leri kullanmak için kaydolamayacak.
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Bu örnekte, Fitness API istemcisinin nasıl oluşturulacağı gösterilmektedir.
API istemcisini aşağıdaki gibi oluşturun:
Uygulamanızın ihtiyaç duyduğu veri türlerini ve erişim türünü (okuma ve/veya yazma) tanımlayarak bir FitnessOptions örneği oluşturun:
val fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.build()
API ile kullanmak üzere Account nesnesinin bir örneğini alın:
val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
Kullanıcının daha önce gerekli veri erişimi verip vermediğini kontrol edin. Verilmediyse yetkilendirme akışını başlatın:
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
GoogleSignIn.requestPermissions(
this, // your activity
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE, // e.g. 1
account,
fitnessOptions)
} else {
accessGoogleFit()
}
Yetkilendirme akışı gerekliyse kullanıcının yanıtını ele alın:
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
}
}
}
Kullanıcı istenen verilere erişimi yetkilendirdikten sonra, uygulamanızın amacına ve ihtiyaçlarına göre bir fitness istemcisi (örneğin, geçmiş fitness verilerini okumak ve/veya yazmak için HistoryClient) oluşturun:
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) })
}