Sağlık Hizmetleri, ExerciseEvents
için destek sağlar. Bu hizmet, egzersiz sırasında bir etkinlik gerçekleştiğinde uygulamanızı bilgilendirir ve ilişkili meta verileri sağlar.
Bağımlılık ekleme
Egzersiz etkinliklerini kullanmak için Health Services SDK'nın en yeni sürümü gerekir.
Sağlık Hizmetleri'ne bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposuna bakın.
Ardından, modül düzeyindeki build.gradle
dosyanıza aşağıdaki bağımlılığı ekleyin:
Groovy
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha05" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha05") }
Özellikleri kontrol etme
Sağlık Hizmetleri'ndeki tüm egzersiz ve veri türlerinde olduğu gibi, başlangıçta özellikleri kontrol edin. Özellikle
ExerciseEvents
için ExerciseCapabilities
isteğinde bulunmanın yanı sıra,
ExerciseTypeCapabilities.supportedExerciseEvents
kullanarak hangi egzersiz etkinliklerinin desteklendiğini doğrulayın.
Belirli bir ExerciseEvent
öğesinin desteklendiğini onayladıktan sonra, getExerciseEventCapabilityDetails
kullanarak egzersiz etkinliğinin özelliklerini de sorgulamanız gerekir.
Aşağıdaki örnekte, GOLF_SHOT_EVENT
özelliğinin desteklenip desteklenmediğini doğrulamak için nasıl sorgu gönderileceği ve ardından GOLF_SHOT_EVENT
özelliğinin Swing Type Classification'ı desteklediğinin nasıl doğrulanacağı gösterilmektedir.
fun handleCapabilities(capabilities: ExerciseCapabilities) {
val golfCapabilities = capabilities.typeToCapabilities[ExerciseType.GOLF]
val golfShotEventSupported =
golfCapabilities
?.supportedExerciseEvents
?.contains(ExerciseEventType.GOLF_SHOT_EVENT)
val golfSwingTypeClassificationSupported =
golfCapabilities
?.getExerciseEventCapabilityDetails(ExerciseEventType.GOLF_SHOT_EVENT)
?.isSwingTypeClassificationSupported ?: false
}
Alıştırmada alıştırma etkinlikleri isteme
Alıştırmayı başlatmak ve alıştırma kapsamında bir alıştırma etkinliği isteğinde bulunmak için,
alıştırma için ExerciseConfig
değerini bildirin
ve exerciseEventType
için bir alan ekleyin.
Aşağıdaki örnek, GOLF
alıştırması kapsamında GOLF_SHOT_EVENT
isteğinde bulunuyor:
val config = ExerciseConfig(
exerciseType = ExerciseType.GOLF,
dataTypes = setOf(....),
// ...
exerciseEventTypes = setOf(ExerciseEventType.GOLF_SHOT_EVENT),
)
Egzersiz etkinliği güncellemelerine kaydolma
Uygulamanızın egzersiz güncellemelerini alma için kullandığı mevcut altyapı kapsamında ExerciseEvent
güncellemeleri alabilirsiniz.
Aşağıdaki örnekte, GolfShotEvent
güncellemeleri için nasıl destek ekleyeceğiniz gösterilmektedir:
val callback = object : ExerciseUpdateCallback {
override fun onExerciseUpdateReceived(update: ExerciseUpdate) {
...
}
// [ExerciseEvent] intended to come through with low latency and out of
// band of onExerciseUpdateReceived()
override fun onExerciseEventReceived(event: ExerciseEvent) {
when (event) {
is GolfShotEvent -> {
if (it.swingType == GolfShotSwingType.PUTT) {
println("Putt detected!")
}
}
}
}
}