Sağlık Hizmetleri, ExerciseEvents
için destek sağlar. Bu destek, egzersiz sırasında bir etkinlik gerçekleştiğinde uygulamanıza bildirim gönderir ve ilgili meta verileri sağlar.
Bağımlılık ekleme
Egzersiz etkinliklerini kullanmak için Health Services SDK'nın en son sürümü gerekir.
Sağlık Hizmetleri'nde 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:
Modern
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha03" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha03") }
Özellikleri kontrol edin
Sağlık Hizmetlerindeki tüm egzersizler 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 belirli bir egzersiz için hangi egzersiz etkinliklerinin desteklendiğini doğrulamak üzere ExerciseTypeCapabilities.supportedExerciseEvents
öğesini kullanı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 desteklendiğini onaylamak için özelliklerin nasıl sorgulanacağı ve ardından GOLF_SHOT_EVENT
öğesinin, Swing Türü Sınıflandırmasını desteklediğinin nasıl onaylanacağı 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
}
Egzersizde egzersiz etkinlikleri isteme
Egzersizi başlatmak ve egzersizin bir parçası olarak egzersiz etkinliği istemek için egzersiz için ExerciseConfig
belirtin ve exerciseEventType
için bir alan ekleyin.
Aşağıdaki örnekte, bir GOLF
alıştırmasının parçası olarak GOLF_SHOT_EVENT
isteğinde bulunulmuştur:
val config = ExerciseConfig(
exerciseType = ExerciseType.GOLF,
dataTypes = setOf(....),
// ...
exerciseEventTypes = setOf(ExerciseEventType.GOLF_SHOT_EVENT),
)
Egzersiz etkinliği güncellemelerine kaydolun
Uygulamanızın egzersiz güncellemeleri almak için sahip olduğu mevcut altyapının bir parçası olarak ExerciseEvent
güncellemelerini alabilirsiniz.
Aşağıdaki örnekte, GolfShotEvent
güncellemeleri için nasıl destek uygulayacağınız 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!")
}
}
}
}
}