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!")
}
}
}
}
}