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

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

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

कसरत से जुड़े इवेंट का इस्तेमाल करने के लिए, आपके पास स्वास्थ्य सेवाओं के SDK टूल का सबसे नया वर्शन होना चाहिए.

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

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