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

บริการด้านสุขภาพรองรับ 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!")
        }
      }
    }
  }
}