บริการด้านสุขภาพรองรับ ExerciseEvents
ซึ่งจะแจ้งให้แอปทราบเมื่อเกิดเหตุการณ์ขึ้นระหว่างการออกกำลังกายและให้ข้อมูลเมตาที่เกี่ยวข้อง
เพิ่มทรัพยากร Dependency
การใช้เหตุการณ์การออกกำลังกายต้องใช้ Health Services SDK เวอร์ชันล่าสุด
หากต้องการเพิ่มการอ้างอิงในบริการด้านสุขภาพ คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ ดูข้อมูลเพิ่มเติมได้ที่ ที่เก็บ Maven ของ Google
จากนั้นเพิ่มทรัพยากร Dependency ต่อไปนี้ในไฟล์ build.gradle
ระดับโมดูล
ดึงดูด
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha05" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha05") }
ตรวจสอบความสามารถ
เช่นเดียวกับการออกกำลังกายและประเภทข้อมูลทั้งหมดในบริการด้านสุขภาพ
ตรวจสอบความสามารถเมื่อเริ่มต้น สําหรับ
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!")
}
}
}
}
}