จัดการกิจกรรมการออกกำลังกาย

บริการข้อมูลสุขภาพจะให้การสนับสนุนสำหรับ ExerciseEvents ซึ่งจะแจ้งเตือนแอปของคุณเมื่อเกิดเหตุการณ์ขึ้นระหว่างการออกกำลังกายและให้ข้อมูลเมตาที่เกี่ยวข้อง

เพิ่มทรัพยากร Dependency

การใช้เหตุการณ์การออกกำลังกายต้องใช้ SDK บริการสุขภาพเวอร์ชันล่าสุด

หากต้องการเพิ่มทรัพยากร Dependency ของ Health Services คุณต้องเพิ่มที่เก็บ Google Maven ลงในโปรเจ็กต์ของคุณ สำหรับข้อมูลเพิ่มเติม โปรดดู ที่เก็บ Maven ของ Google

จากนั้นเพิ่มการอ้างอิงต่อไปนี้ในไฟล์ build.gradle ระดับโมดูล

ดึงดูดKotlin
dependencies {
    implementation "androidx.health:health-services-client:1.1.0-alpha03"
}
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!")
       
}
     
}
   
}
 
}
}