कसरत के इवेंट मैनेज करना

Health Services, ExerciseEvents के लिए सहायता उपलब्ध कराता है. इससे, कसरत के दौरान कोई इवेंट होने पर आपके ऐप्लिकेशन को सूचना मिलती है. साथ ही, उससे जुड़ा मेटाडेटा भी मिलता है.

डिपेंडेंसी जोड़ें

एक्सरसाइज़ इवेंट का इस्तेमाल करने के लिए, Health Services SDK का नया वर्शन ज़रूरी है.

Health Services पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी देखें.

इसके बाद, मॉड्यूल-लेवल की 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")
}

सुविधाओं के बारे में जानकारी

Health Services में मौजूद सभी कसरतों और डेटा टाइप की तरह, स्टार्टअप के समय क्षमताओं की जांच करें. खास तौर पर, 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 के हिस्से के तौर पर GOLF_SHOT_EVENT का अनुरोध किया गया है:

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!")
        }
      }
    }
  }
}