सेंसर डेटा को Health Services की मदद से सिम्युलेट करें

Wear OS पर Health Services से जनरेट किए गए सिंथेटिक डेटा का इस्तेमाल करके, अपने ऐप्लिकेशन की जांच करें. ऐसा करके, यह पता लगाया जा सकता है कि ऐप्लिकेशन में कसरत की गतिविधि की जानकारी सही है या नहीं.

अगर Wear OS 3 (एपीआई लेवल 30) या इसके बाद के वर्शन पर चलने वाले किसी एमुलेटर पर टेस्ट किया जा रहा है, तो एमुलेटर से जनरेट किए गए सिंथेटिक डेटा का इस्तेमाल किया जा सकता है. Wear OS 3 और उसके बाद के वर्शन के लिए, सिंथेटिक डेटा जनरेशन के बीच के अंतर के बारे में ज़्यादा जानने के लिए, यहां दी गई गाइड देखें.

Wear OS 4 और इसके बाद के वर्शन पर सिंथेटिक डेटा का इस्तेमाल करना

अगर Wear OS 4 (एपीआई लेवल 33) या इसके बाद के वर्शन वाले किसी एमुलेटर पर टेस्ट किया जा रहा है, तो ऐप्लिकेशन की जांच करने के लिए, एमुलेटर से जनरेट किए गए सिंथेटिक डेटा का इस्तेमाल किया जा सकता है. इससे, Wear OS के पुराने वर्शन पर सिंथेटिक डेटा जनरेट करने के तरीके में कई सुधार हुए हैं:

स्वास्थ्य सेवाओं के सेंसर पैनल का इस्तेमाल करना

Android Studio Koala Feature Drop (Canary) में, Wear OS के सेंसर पैनल पर Health Services शामिल है. इस पैनल का इस्तेमाल, किसी ऐसे डिवाइस को सिम्युलेट करने के लिए किया जा सकता है जिसमें सेंसर की खास सुविधाएं हों या न हों. Wear OS पर फ़िटनेस ऐप्लिकेशन बनाते समय, इसकी जांच करना ज़रूरी है.

पैनल का इस्तेमाल करके, मेट्रिक की वैल्यू भी बदली जा सकती हैं. साथ ही, यह भी देखा जा सकता है कि आपका ऐप्लिकेशन कैसे अडजस्ट होता है.

पैनल को खोलने और इस्तेमाल करने के लिए, यह तरीका अपनाएं:

  1. Android वर्चुअल डिवाइस (AVD) बनाएं या खोलें और एमुलेटर पर अपना ऐप्लिकेशन चलाएं.
  2. एमुलेटर पैनल में, Wear Health Services चुनें. Wear Health Services पैनल खोलना Wear Health Services पैनल खुलता है. इसमें, Android डिवाइसों पर उपलब्ध सेंसर की सूची दिखती है.

पैनल खुलने के बाद, ये काम किए जा सकते हैं:

  • अगली कसरत के दौरान चालू की जाने वाली सुविधाओं का सेट चुनने के लिए, स्टैंडर्ड सुविधाएं और सभी सुविधाएं (डिफ़ॉल्ट) के बीच टॉगल करें. चेकबॉक्स चुनकर, अलग-अलग सुविधाओं को चालू या बंद किया जा सकता है. एमुलेट किए गए डिवाइस पर, सुविधाओं की मौजूदा सूची भेजने के लिए, लागू करें चुनें. साथ ही, सुविधाओं की सूची को डिफ़ॉल्ट तौर पर चालू या बंद करने की वैल्यू पर वापस लाने के लिए, रीसेट करें चुनें.
  • इवेंट ट्रिगर करें ड्रॉप-डाउन बटन चुनने के बाद, अलग-अलग उपयोगकर्ता इवेंट ट्रिगर करें. यहां से, फिटनेस गतिविधियों को अपने-आप रोकने/फिर से शुरू करने की सुविधा को ट्रिगर किया जा सकता है. साथ ही, उपयोगकर्ता के नींद के इवेंट और गोल्फ़ कोर्स या मिनी-गोल्फ़ कोर्स पर किए गए गोल्फ़ शॉट को ट्रिगर किया जा सकता है.
  • एमुलेटर पर इंस्टॉल किए गए ऐप्लिकेशन में कसरत शुरू करने के बाद, सेंसर की वैल्यू बदलें. अलग-अलग कसरत की मेट्रिक के लिए नई वैल्यू डालने के बाद, इन वैल्यू को एमुलेटर के साथ सिंक करने के लिए, लागू करें चुनें. इससे यह जांचने में मदद मिलती है कि आपका ऐप्लिकेशन, कसरत की अलग-अलग स्थितियों और उपयोगकर्ताओं की फिटनेस के रुझानों को कैसे मैनेज करता है.

एमुलेटर की मदद से सिंथेटिक डेटा जनरेट करना

सेंसर पैनल के बिना भी ऐप्लिकेशन को चलाया जा सकता है. साथ ही, एमुलेटर से डेटा अपने-आप जनरेट हो सकता है.

सिंथेटिक डेटा जनरेशन की प्रोसेस शुरू करने, रोकने, और खत्म करने के लिए, ऐप्लिकेशन में मौजूद कंट्रोल का इस्तेमाल करें.

यह भी ध्यान रखें कि एमुलेटर हर एक्सरसाइज़ के लिए एक जैसी डेटा वैल्यू जनरेट करता है.

इवेंट सिम्युलेट करना

एमुलेटर में AUTO_PAUSE_DETECTED जैसे अलग-अलग इवेंट सिम्युलेट किए जा सकते हैं. इन इवेंट को ट्रिगर करने के लिए, इस कमांड का इस्तेमाल किया जा सकता है:

adb shell am broadcast -a "whs.event-key" com.google.android.wearable.healthservices

सिंथेटिक इवेंट

इवेंट

सुरक्षा कुंजी

वीडियो अपने-आप रुकने की सुविधा का पता चला

whs.AUTO_PAUSE_DETECTED

वीडियो अपने-आप चलने की सुविधा का पता चला

whs.AUTO_RESUME_DETECTED

गिरने का पता चला

whs.FALL_OVER

नींद का पता चला

whs.START_SLEEPING

नींद में रुकावट का पता चला

whs.STOP_SLEEPING

गॉल्फ़ शॉट का पता चला

whs.GOLF_SHOT

उदाहरण के लिए, अपने-आप रुकने वाले इवेंट को ट्रिगर करने के लिए, इस निर्देश का इस्तेमाल किया जा सकता है:

​​adb shell am broadcast -a "whs.AUTO_PAUSE_DETECTED" com.google.android.wearable.healthservices

गोल्फ शॉट इवेंट के लिए, आपको गोल्फ शॉट स्विंग टाइप के लिए अतिरिक्त पैरामीटर तय करने होंगे. इन पैरामीटर के बारे में यहां बताया गया है:

गॉल्फ़ शॉट स्विंग टाइप

पैरामीटर

स्विंग वाला पुट

पुट शॉट

स्विंग का कुछ हिस्सा

आंशिक

स्विंग का पूरा टाइप

अधिकतम

गोल्फ शॉट इवेंट की जानकारी देने के बाद, गोल्फ शॉट स्विंग टाइप जोड़ें:

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type \
  "golf-swing-type-parameter" com.google.android.wearable.healthservices

उदाहरण के लिए, यह निर्देश गोल्फ शॉट का कुछ हिस्सा चलाता है:

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type "partial" \
  com.google.android.wearable.healthservices

Wear OS 3 पर सिंथेटिक डेटा का इस्तेमाल करना

अगर Wear OS 3 वाले किसी एमुलेटर पर टेस्ट किया जा रहा है, तो अपने ऐप्लिकेशन की जांच करने के लिए सिंथेटिक डेटा का भी इस्तेमाल किया जा सकता है.

सिंथेटिक डेटा जनरेशन की सुविधा चालू करना

Wear OS 3 पर सिंथेटिक डेटा जनरेशन की सुविधा चालू करने के लिए, यह तरीका अपनाएं.

  1. डेवलपर के लिए सेटिंग और टूल चालू करें.
  2. सिंथेटिक मोड चालू करने के लिए, यह adb कमांड दें:

    adb shell am broadcast \
    -a "whs.USE_SYNTHETIC_PROVIDERS" \
    com.google.android.wearable.healthservices
    

सिंथेटिक डेटा जनरेशन की सुविधा चालू होने के बाद, "सिंथेटिक उपयोगकर्ता" के व्यवहार को कंट्रोल करने के लिए, इस पेज पर बताए गए निर्देश दें.

सिंथेटिक डेटा जनरेशन की सुविधा बंद करना

असल सेंसर का इस्तेमाल करने के लिए, यह कमांड चलाएं:

adb shell am broadcast \
-a "whs.USE_SENSOR_PROVIDERS" \
com.google.android.wearable.healthservices

एआई की मदद से जनरेट किए गए कॉन्टेंट से जुड़ी गतिविधियां

Health Services में, इन तरह की गतिविधियां ट्रैक की जा सकती हैं:

  • पैदल: whs.synthetic.user.START_WALKING
  • दौड़ना: whs.synthetic.user.START_RUNNING
  • हाइकिंग: whs.synthetic.user.START_HIKING
  • स्विमिंग: whs.synthetic.user.START_SWIMMING
  • ट्रेडमिल पर दौड़ना: whs.synthetic.user.START_RUNNING_TREADMILL

ये एक्सरसाइज़, इन डेटा टाइप के लिए ज़्यादा सटीक सिंथेटिक डेटा जनरेट करती हैं:

  • धड़कन की दर
  • हर मिनट के कदमों की संख्या
  • जीपीएस की मदद से मिली जगह की जानकारी, किसी एक डिफ़ॉल्ट रास्ते का इस्तेमाल करके
  • गतिविधि की अवधि
  • ऊंचाई और फ़्लोर

इसके अलावा, ये स्थितियां भी जनरेट की जा सकती हैं:

  • नींद की स्थिति—सोया हुआ या जाग रहा
  • फ़ॉल डिटेक्शन

शुरू करें

किसी कसरत का सिम्युलेशन शुरू करने के लिए, com.google.android.wearable.healthservices को सही ब्रॉडकास्ट भेजें:

# start the "walking" synthetic exercise
$ adb shell am broadcast \
-a "whs.synthetic.user.START_WALKING" \
com.google.android.wearable.healthservices

हर गतिविधि में, काम करने वाली मेट्रिक के लिए प्रीसेट होते हैं:

गतिविधि धड़कन की दर औसत गति ऊंचाई में बदलाव जगह की जानकारी का इस्तेमाल करें
पैदल चलना 120 बीपीएम 1.4 मीटर/सेकंड 20.0 मीटर/मिनट सही
दौड़ना 170 बीपीएम 2.3 मीटर/सेकंड 20.0 मीटर/मिनट सही
हाइकिंग 150 बीपीएम 1.3 मीटर/सेकंड 20.0 मीटर/मिनट सही
तैराकी 150 बीपीएम 1.6 मीटर/सेकंड 0.0 मीटर/मिनट सही
ट्रेडमिल पर दौड़ना 160 बीपीएम 2.3 मीटर/सेकंड 20.0 मीटर/मिनट गलत

रोकें

सिंथेटिक गतिविधि को रोकने के लिए, यह कमांड इस्तेमाल करें:

adb shell am broadcast \
-a "whs.synthetic.user.STOP_EXERCISE" \
com.google.android.wearable.healthservices

पसंद के मुताबिक़

कौनसी मेट्रिक जनरेट की जाएंगी, इस पर ज़्यादा सटीक कंट्रोल के लिए, ऐक्शन स्ट्रिंग whs.synthetic.user.START_EXERCISE का इस्तेमाल करके कस्टम गतिविधि शुरू करें. इनमें से कोई भी फ़्लैग दें:

  • --ei exercise_options_duration_secs <int>: कसरत की अवधि, सेकंड में. डिफ़ॉल्ट: 0.
  • --ei exercise_options_heart_rate <int>: धड़कन की दर, धड़कन प्रति मिनट में. औसत: 70.
  • --ef exercise_options_average_speed <float>: औसत स्पीड, मीटर प्रति सेकंड में. इससे, कदम प्रति मिनट या गति पर भी असर पड़ता है. डिफ़ॉल्ट: 0.
  • --ez exercise_options_use_location <boolean>: डिफ़ॉल्ट रूट का इस्तेमाल करके, कसरत के दौरान जगह की जानकारी का डेटा भेजना है या नहीं. डिफ़ॉल्ट: false.
  • --ef exercise_options_max_elevation_rate <float>: ऊंचाई में बदलाव की ज़्यादा से ज़्यादा दर, मीटर प्रति मिनट में. डिफ़ॉल्ट: 0.

उदाहरण के लिए, कसरत के विकल्पों को इस तरह सेट करें:

adb shell am broadcast \
-a "whs.synthetic.user.START_EXERCISE" \
--ei exercise_options_heart_rate 90 \
--ef exercise_options_average_speed 1.2 \
--ez exercise_options_use_location true \
com.google.android.wearable.healthservices

उपलब्ध डेटा टाइप भी बदले जा सकते हैं. भले ही, असल या एमुलेट किए गए हार्डवेयर में किसी डेटा टाइप का इस्तेमाल किया जा सकता हो या नहीं. उदाहरण के लिए, आपके पास एब्सोलूट एलिवेशन को चालू या बंद करने का विकल्प है, जैसा कि यहां दिए गए स्निपेट में दिखाया गया है:

# enable synthetic mode and enable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation true \
com.google.android.wearable.healthservices

# enable synthetic mode and disable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation false \
com.google.android.wearable.healthservices

अन्य स्थितियां और इवेंट

स्लीप मोड की स्थिति

आपके पास सिंथेटिक उपयोगकर्ता के लिए, नींद की स्थितियों को ट्रिगर करने का विकल्प भी होता है. इन दो स्थितियों का इस्तेमाल किया जा सकता है: सो रहा है और जाग रहा है.

डिवाइस को स्लीप मोड में डालने के लिए, यह कमांड चलाएं:

adb shell am broadcast \
-a "whs.synthetic.user.START_SLEEPING" \
com.google.android.wearable.healthservices

डिवाइस को चालू करने के लिए, यह कमांड चलाएं:

adb shell am broadcast \
-a "whs.synthetic.user.STOP_SLEEPING" \
com.google.android.wearable.healthservices

फ़ॉल डिटेक्शन

गिरने की गतिविधि को सिम्युलेट करने के लिए, यह निर्देश चलाएं:

adb shell am broadcast \
-a "whs.synthetic.user.FALL_OVER" \
com.google.android.wearable.healthservices

गिरने की घटना की जानकारी देने में, स्वास्थ्य सेवाओं को एक मिनट तक लग सकता है.