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

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

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

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

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

अपग्रेड करना होगा जो Wear OS 4 या इसके बाद के वर्शन के साथ काम करता हो.

Health Services के सेंसर पैनल का इस्तेमाल करना

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

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

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

  1. Android Virtual Device (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 मी॰/मि॰ true
दौड़ना 170 बीपीएम 2.3 मी/से॰ 20.0 मी॰/मि॰ true
हाइकिंग 150 बीपीएम 1.3 मी/से॰ 20.0 मी॰/मि॰ true
तैराकी 150 बीपीएम 1.6 मी/सेकंड 0.0 मी॰/मि॰ true
ट्रेडमिल पर दौड़ना 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

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