توفر "الخدمات الصحية" الدعم لـ ExerciseEvents
،
التي ترسل إشعارًا إلى تطبيقك عند وقوع حدث أثناء ممارسة تمرين، وتوفّر البيانات الوصفية المرتبطة بها.
إضافة التبعيات
يتطلّب استخدام أحداث التمارين الرياضية أحدث إصدار من "حزمة تطوير البرامج (SDK) للخدمات الصحية".
لإضافة الاعتماد على "الخدمات الصحية"، يجب إضافة مستودع Google Maven لمشروعك. لمزيد من المعلومات، يُرجى مراجعة مستودع Maven من Google
بعد ذلك، في ملف build.gradle
على مستوى الوحدة، أضف التبعية التالية:
Groovy
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha03" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha03") }
التحقّق من الإمكانات
كما هو الحال مع جميع التمارين وأنواع البيانات في "الخدمات الصحية"، اطّلِع على الإمكانات في
بدء التشغيل. بالنسبة
ExerciseEvents
على وجه الخصوص، بالإضافة إلى طلب ExerciseCapabilities
،
استخدام ExerciseTypeCapabilities.supportedExerciseEvents
للتحقق من أحداث التمرين المدعومة للتمرين المعين.
بعد التأكّد من توفّر السمة ExerciseEvent
المحدّدة،
يجب عليك أيضًا الاستعلام عن إمكانات حدث التمرين باستخدام
getExerciseEventCapabilityDetails
يوضح المثال التالي كيفية طلب البحث عن الإمكانات لتأكيد
إنّ GOLF_SHOT_EVENT
متوافق، ثم تأكَّد من أنّ GOLF_SHOT_EVENT
.
تدعم تصنيف نوع التأرجح.
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
}
طلب أحداث تمرين رياضي
لبدء التمرين وطلب حدث تمرين كجزء من التمرين،
تعريف ExerciseConfig
للتمرين
وأضِف حقلاً لـ exerciseEventType
.
في ما يلي مثال يطلب العنصر GOLF_SHOT_EVENT
كجزء من تمرين GOLF
:
val config = ExerciseConfig(
exerciseType = ExerciseType.GOLF,
dataTypes = setOf(....),
// ...
exerciseEventTypes = setOf(ExerciseEventType.GOLF_SHOT_EVENT),
)
التسجيل لتلقّي إشعارات بشأن ممارسة التمارين الرياضية
يمكنك تلقّي تحديثات ExerciseEvent
كجزء من البنية الأساسية الحالية.
يحصل تطبيقك على تحديثات التمارين.
يوضّح المثال التالي كيفية إتاحة تحديثات GolfShotEvent
:
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!")
}
}
}
}
}