Wear OS डिवाइसों पर ऐप्लिकेशन के काम करने की क्षमता को बेहतर बनाना

Wear OS 3 और इसके बाद के वर्शन पर काम करने वाले सभी डिवाइसों के लिए, Wear Health Services API (WHS) एक ज़रूरी कॉम्पोनेंट है. यह सेहत और फ़िटनेस से जुड़े डेवलपर के लिए, इंटिग्रेशन का एक जैसा प्लैटफ़ॉर्म उपलब्ध कराता है. अपने ऐप्लिकेशन को इस तरह से बनाएं कि वह अलग-अलग डिवाइसों और उनकी सुविधाओं के हिसाब से काम कर सके. इससे यह पक्का किया जा सकेगा कि ऐप्लिकेशन सभी डिवाइसों पर काम कर रहा है और लोगों को इस्तेमाल करने में कोई समस्या नहीं आ रही है. इसके लिए, सिर्फ़ उन क्लाइंट के लिए डिपेंडेंसी का एलान करें जिनका इस्तेमाल आपका ऐप्लिकेशन करता है. इसके अलावा, अपने ऐप्लिकेशन को यह सुविधा दें कि वह उपलब्ध होने के आधार पर, वैकल्पिक तौर पर इस्तेमाल की जाने वाली बेहतर मेट्रिक को दिखा सके या हटा सके.

अलग-अलग सेंसर, अलग-अलग फ़्रीक्वेंसी पर डेटा जनरेट करते हैं. यह फ़्रीक्वेंसी, डिवाइस के हिसाब से अलग-अलग होती है. यह डिवाइस के हार्डवेयर और सेंसर प्लैटफ़ॉर्म पर निर्भर करती है. उदाहरण के लिए, कोई डिवाइस एक टाइमस्टैंप पर दिल की धड़कन की दर और दूसरे टाइमस्टैंप पर जगह की जानकारी दिखा सकता है. ऐसे ऐप्लिकेशन बनाएं जो अलग-अलग टाइमस्टैंप या ओवरलैप होने वाले टाइमस्टैंप पर, स्वतंत्र डेटा स्ट्रीम पा सकें.

इस गाइड में, Wear Health Services के अलग-अलग क्लाइंट के लिए, उम्मीद के मुताबिक काम करने के तरीके और डेटा टाइप के बारे में बताया गया है.

कसरत का क्लाइंट

यहां दिए गए सेक्शन में, ExerciseClient के अनुमानित व्यवहार और डेटा टाइप के बारे में बताया गया है.

अनुमानित व्यवहार

ExerciseClient के लिए, कुछ कसरत के टाइप, कुछ डेटा टाइप की उपलब्धता पर निर्भर करते हैं. उदाहरण के लिए, व्हीलचेयर से की जाने वाली कसरत की सुविधा सिर्फ़ तब उपलब्ध होती है, जब व्हीलचेयर को आगे-पीछे करने की सुविधा काम करती हो. किसी डिवाइस पर इन विकल्पों की उपलब्धता के आधार पर, इन्हें चालू और बंद करें.

ज़्यादातर कसरत के डेटा टाइप को एक-एक सेकंड के अंतराल पर सैंपल किया जाता है और डिलीवर किया जाता है. हालांकि, इसमें कुछ अपवाद हो सकते हैं:

  • कुछ मामलों में, कसरत के डेटा टाइप को हर सेकंड में एक से ज़्यादा बार अपडेट किया जाता है. उदाहरण के लिए, जब उपयोगकर्ता दौड़ रहा होता है, तो हर सेकंड में एक से ज़्यादा बार कदमों की संख्या अपडेट होती है.
  • कुछ डेटा टाइप के लिए, अपडेट सिर्फ़ तब डिलीवर किया जाता है, जब मौजूदा वैल्यू पिछली वैल्यू से अलग हो.

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

डेटा टाइप, सिर्फ़ घड़ी के सेंसर से जनरेट हुए डेटा से मिलते हैं. उदाहरण के लिए, जगह की जानकारी का डेटा पूरी तरह से स्मार्टवॉच से मिलता है, न कि फ़ोन से.

डेटा टाइप

ExerciseClient API की मदद से, अलग-अलग तरह की कसरत शुरू की जा सकती है. साथ ही, उन्हें रोका, फिर से शुरू किया, और बंद किया जा सकता है. हर कसरत के लिए, WHS डेटा टाइप का एक सेट तय करता है. ये डेटा टाइप, आपको उस तरह की कसरत के लिए उपलब्ध कराए जाते हैं. इससे बैटरी की बचत होती है और आपके ऐप्लिकेशन का लॉजिक आसान हो जाता है. ऐसा इसलिए, क्योंकि जिस सेंसर की ज़रूरत नहीं होती उसे चालू नहीं किया जाता. उदाहरण के लिए, दौड़ शुरू करने पर जगह की जानकारी सिर्फ़ आउटडोर रन के लिए दी जाती है और ट्रैक की जाती है. साइकल चलाने की कसरत शुरू करने पर, कदमों की जानकारी नहीं दी जाती है और न ही उन्हें ट्रैक किया जाता है. यहां दिए गए सेक्शन में, ExerciseClient में इस्तेमाल किए जा सकने वाले डेटा टाइप के बारे में बताया गया है.

एक्सरसाइज़ के डेटा टाइप की गारंटी

एक्सरसाइज़ के ये डेटा टाइप, सभी डिवाइसों पर उपलब्ध हैं.

  • सैंपल डेटा टाइप में, _STATS डेटा टाइप होता है. यह डेटा टाइप, कसरत से जुड़ी सबसे कम, सबसे ज़्यादा, और औसत वैल्यू दिखाता है. उदाहरण के लिए, PACE के आंकड़ों को PACE_STATS डेटा टाइप की मदद से पुल किया जा सकता है.
  • इंटरवल डेटा टाइप में, _TOTAL डेटा टाइप होता है. इससे, कसरत की कुल वैल्यू मिलती है. उदाहरण के लिए, DISTANCE_TOTAL डेटा टाइप का इस्तेमाल करके, DISTANCE के आंकड़े पाए जा सकते हैं.
मेट्रिक अनुमानित डेटा अनुमानित व्यवहार के बारे में नोट
HEART_RATE_BPM धड़कन प्रति मिनट [DataType: Double] कसरत के दौरान, सभी डिवाइस हर सेकंड में एक बार धड़कन की दर का सैंपल लेते हैं. कुछ डिवाइस, हर सेकंड बीपीएम की वैल्यू रिपोर्ट करते हैं. कुछ डिवाइस सिर्फ़ तब बीपीएम की रिपोर्ट करते हैं, जब वह पिछली वैल्यू से बदल गया हो. ऐसा न सोचें कि सभी डिवाइसों पर, हर एक सेकंड के अंतराल पर बीपीएम वैल्यू मिलेगी.
जगह अक्षांश और देशांतर [DataType: Double] जगह की जानकारी का डेटा, सिर्फ़ स्मार्टवॉच के जीपीएस पर आधारित होता है. जगह की जानकारी का डेटा, फ़्यूज़्ड लोकेशन प्रोवाइडर या Android की अन्य सेवाओं से नहीं मिलता. हर डेटा पॉइंट में, सटीक वैल्यू (इसे हॉरिज़ॉन्टल पोज़िशन में गड़बड़ी भी कहा जाता है) और उपलब्धता की जानकारी भी शामिल होती है.
चरण [डेटा टाइप: Long] कसरत के दौरान, कदमों की संख्या लगातार बढ़ती रहती है. इसमें कसरत रोकने के दौरान का समय शामिल नहीं होता
DISTANCE मीटर [डेटा टाइप: डबल] अगर जगह की जानकारी जीपीएस पर आधारित है, तो उससे कैलकुलेट किया जाता है. अगर ऐसा नहीं है, तो कदमों की संख्या से कैलकुलेट किया जाता है. कुल का मतलब, कसरत की पूरी अवधि से है. इसमें कसरत को रोकने के दौरान बिताया गया समय शामिल नहीं होता.
गति [मीटर / सेकंड] [डेटा टाइप: डबल] कम से कम, ज़्यादा से ज़्यादा, और औसत वैल्यू दिखाता है. ये कसरत के दौरान के आंकड़े हैं. इनमें कसरत रोके जाने के दौरान का समय शामिल नहीं है.
रफ़्तार [seconds / meter] [Data type: Double] अगर स्पीड 0 है, तो डिफ़ॉल्ट वैल्यू 0 होती है. औसत, कसरत की अवधि के हिसाब से तय किए जाते हैं. इसमें कसरत रोके जाने का समय शामिल नहीं होता.
ELEVATION_GAIN मीटर. [डेटा टाइप: डबल] ऊंचाई में पॉज़िटिव बदलाव. यह कुल समय, कसरत की पूरी अवधि के हिसाब से रिपोर्ट किया जाता है. इसमें कसरत रोकने के दौरान बिताया गया समय शामिल नहीं होता.
TOTAL_CALORIES kCal [डेटा टाइप: डबल] बेसल मेटाबॉलिक रेट में, शारीरिक गतिविधि के दौरान खर्च हुई कैलोरी को जोड़ा जाता है. यहां दिखाई गई कैलोरी, सिस्टम सेटिंग में उपयोगकर्ता की लंबाई, वज़न, उम्र, और लिंग के हिसाब से तय की जाती हैं. कैलोरी की जानकारी में, आपके ऐप्लिकेशन में इकट्ठा किया गया उपयोगकर्ता की प्रोफ़ाइल का कोई भी डेटा शामिल नहीं होता. बताई गई कुल कैलोरी, कसरत की अवधि के हिसाब से होती है. इसमें कसरत को रोकने का समय शामिल नहीं होता.

कसरत के डेटा टाइप (ज़रूरी नहीं)

यहाँ दिए गए डेटा टाइप की सूची, सिर्फ़ कुछ डिवाइसों पर उपलब्ध है. DataTypes की पूरी सूची देखने के लिए, Jetpack का रेफ़रंस देखें. अगर कोई डेटाटाइप, “ज़रूरी/गारंटीड” सूची में शामिल नहीं है, तो उसे शामिल करना ज़रूरी नहीं है.

ज़रूरी नहीं वाले डेटा टाइप के ये उदाहरण देखें. यह पूरी सूची नहीं है:

मेट्रिक अनुमानित डेटा अनुमानित व्यवहार के बारे में नोट
ABSOLUTE_ELEVATION [डेटा टाइप: डबल]
ELEVATION_LOSS मीटर [डेटा टाइप: डबल] ऊंचाई में कमी. वैल्यू पॉज़िटिव है. उदाहरण के लिए, ऊंचाई में 1 मीटर की कमी को 1 के तौर पर दिखाया जाता है, न कि -1 के तौर पर.
STEPS_PER_MINUTE [डेटा टाइप: Long]
WHEELCHAIR_PUSHES [डेटा टाइप: Long] व्हीलचेयर को ढकेलने की संख्या, ताकि व्हीलचेयर पर की जाने वाली कसरतों में इसका इस्तेमाल किया जा सके.
REP_COUNT [डेटा टाइप: Long]
SWIM_STROKE_COUNT [डेटा टाइप: Long]
SWIM_LAP_COUNT [डेटा टाइप: Long]

हर कसरत के हिसाब से डेटा टाइप

हर तरह की कसरत के लिए, अलग-अलग डेटा टाइप दिखाए जाते हैं. जवाब में दिए गए डेटा टाइप, कसरत की ज़रूरतों के मुताबिक होते हैं. उदाहरण के लिए, साइकल चलाने की कसरत के टाइप से, कदमों की संख्या का डेटा टाइप नहीं मिलता. कृपया रनटाइम के दौरान, Capabilities तरीके का इस्तेमाल करके यह पता लगाएं कि उपयोगकर्ता के डिवाइस पर कौनसा डेटा टाइप काम करता है.

कम से कम, सभी तरह की कसरत के लिए, दिल की धड़कन और कैलोरी का डेटा मिलता है. अन्य कसरत के लिए, अतिरिक्त डेटा टाइप इस्तेमाल किए जा सकते हैं. हालांकि, यह कसरत की ज़रूरतों पर निर्भर करता है.

यहां कुछ उदाहरण दिए गए हैं:

  • ध्यान लगाने या पिलाटीज़ जैसी कसरतों के लिए, सिर्फ़ धड़कन की दर और कैलोरी की जानकारी मिलती है
  • बास्केटबॉल या बैडमिंटन जैसी कसरतों के लिए, हार्ट रेट, कैलोरी, दूरी, और कदमों की संख्या को ट्रैक किया जा सकता है.
  • चलने और दौड़ने जैसी कसरतों के लिए, धड़कन की दर, कैलोरी, दूरी, कदम, रफ़्तार, और गति का डेटा उपलब्ध होता है
  • स्विमिंग के लिए, धड़कन की दर, कैलोरी, दूरी, और स्विम लैप की जानकारी मिलती है

पैसिव मॉनिटरिंग क्लाइंट

Wear OS पर काम करने वाले सभी डिवाइसों के लिए, यहां दिए गए डेटा टाइप ज़रूरी हैं. इनकी मदद से, ऐसे ऐप्लिकेशन काम कर पाते हैं जो स्वास्थ्य से जुड़ा डेटा मॉनिटर करते हैं. जैसे, धड़कन की दर और कदमों की संख्या. इनमें से हर डेटा टाइप, सिर्फ़ घड़ी के सेंसर से जनरेट किए गए डेटा से लिया जाना चाहिए.

अनुमानित व्यवहार

बैटरी बचाने के लिए, पैसिव मॉनिटरिंग का इस्तेमाल करके सेंसर से मिली रीडिंग को एमसीयू पर सेव किया जाता है. साथ ही, उन्हें Health Services को बैच में भेजा जाता है. बैच किए गए ये नतीजे, सिस्टम के काम करने के तरीके के आधार पर अलग-अलग इंटरवल पर दिखाए जाते हैं. उदाहरण के लिए, सेंसर बफ़र के पूरी तरह भर जाने पर या उपयोगकर्ता के डिसप्ले से इंटरैक्ट करने पर, बैच वापस भेजे जाते हैं.

किसी भी डेटा टाइप के लिए, पहले से तय किए गए या अनुमानित बैचिंग इंटरवल का इस्तेमाल न करें.

पैसिव मॉनिटरिंग के डेटा टाइप

मेट्रिक अनुमानित डेटा Notes
HEART_RATE_BPM धड़कन प्रति मिनट [डेटा टाइप: Double] डिवाइस, अलग-अलग समय पर दिल की धड़कन की रीडिंग दिखा सकते हैं. कुछ डिवाइसों पर, हर सेकंड में रीडिंग ली जा सकती है. अन्य डिवाइस हर दस मिनट में रीडिंग ले सकते हैं. ये अंतराल, ऐप्लिकेशन के लिए उपलब्ध नहीं कराए जाते. ऐप्लिकेशन को अलग-अलग सैंपलिंग इंटरवल के हिसाब से काम करना चाहिए.
STEPS_DAILY/STEPS [डेटा टाइप: Long] हर दिन के कदमों की संख्या, आखिरी बार रीसेट किए जाने के बाद से अब तक चले गए कुल कदमों की संख्या होती है. यह संख्या, WHS की ओर से आधी रात को ट्रिगर की जाती है. इसमें कसरत को रोकने के दौरान की गई कोई भी गतिविधि शामिल है. 'कदम' फ़ील्ड में, पिछली बार की जांच के बाद से हुए बदलावों की जानकारी होती है.
DISTANCE_DAILY/DISTANCE मीटर [डेटा टाइप: डबल] इसे एक्सलरोमीटर/कदमों की संख्या से कैलकुलेट किया जाता है. जीपीएस के दौरान कैलकुलेट न करें, ताकि जिन लोगों ने लोकेशन सेवाओं को बंद कर दिया है उन्हें भी कदमों की सटीक जानकारी मिल सके.
गति [मीटर / सेकंड] [डेटा टाइप: डबल]
CALORIES_DAILY kCal [डेटा टाइप: डबल] दिन भर में खर्च हुई कैलोरी. इसमें शारीरिक गतिविधि के दौरान खर्च हुई कैलोरी और बीएमआर शामिल है. यहां दिखाई गई कैलोरी की संख्या में, सिस्टम सेटिंग में बताई गई उपयोगकर्ता की लंबाई, वज़न, उम्र, और लिंग की जानकारी को ध्यान में रखा जाता है. आपके ऐप्लिकेशन में इकट्ठा किए गए उपयोगकर्ता की प्रोफ़ाइल के डेटा के हिसाब से, कैलोरी को अडजस्ट नहीं किया जाता.
RUNNING_STEPS (ज़रूरी नहीं) [डेटा टाइप: Long] कसरत के दौरान और उसके अलावा, कदमों की संख्या में अंतर. दोनों को एक ही समय पर ट्रैक करें.
WALKING_STEPS (ज़रूरी नहीं) [डेटा टाइप: Long]
ELEVATION_GAIN मीटर [डेटा टाइप: डबल] इसमें सिर्फ़ ऊंचाई में हुई बढ़ोतरी शामिल होती है
ELEVATION_LOSS मीटर [डेटा टाइप: डबल] इसमें सिर्फ़ ऊंचाई में होने वाले नेगेटिव डेल्टा शामिल हैं
FLOORS_DAILY [डेटा टाइप: डबल] इन्हें “आंशिक” फ़्लोर के तौर पर दिखाया जा सकता है

पैसिव मॉनिटरिंग के रोज़ के लक्ष्य

मेट्रिक अनुमानित डेटा Notes
STEPS_DAILY [डेटा टाइप: Long] हर दिन के कदमों की संख्या में, कसरत के दौरान लिए गए कदम भी शामिल होते हैं. यह संख्या, आखिरी बार रीसेट किए जाने के बाद से लिए गए कुल कदमों की संख्या होती है. WHS आधी रात को रीसेट हो जाता है.
FLOORS_DAILY [डेटा टाइप: डबल] इसे सीढ़ियों के “आधे” फ़्लोर के तौर पर दिखाया जा सकता है.
CALORIES_DAILY kCal [डेटा टाइप: डबल] दिन भर में खर्च हुई कैलोरी. इसमें शारीरिक गतिविधि के दौरान खर्च हुई कैलोरी और बीएमआर शामिल है.
DISTANCE_DAILY मीटर [डेटा टाइप: डबल] यह एक्सलरोमीटर या कदमों की संख्या से कैलकुलेट की जाती है. इसकी गिनती के लिए जीपीएस का इस्तेमाल न करें, ताकि जिन लोगों ने जगह की जानकारी देने वाली सेवाओं को बंद किया है उन्हें भी कदमों की सटीक जानकारी मिल सके.
DAILY_ELEVATION_GAIN मीटर [डेटा टाइप: डबल] इसमें सिर्फ़ ऊंचाई में हुई बढ़ोतरी शामिल होती है

MeasureClient

किसी समय पर धड़कन की दर मापने के लिए, MeasureClient का इस्तेमाल करें.

अनुमानित व्यवहार

MeasureClient और PassiveClient कुछ मामलों में एक जैसे हैं. ये दोनों, कसरत से जुड़े नहीं, बल्कि सेहत से जुड़े ऐसे आंकड़े उपलब्ध कराते हैं जिन्हें बैच नहीं किया जाता. इन दोनों का इस्तेमाल, दिल की धड़कन की दर को मेज़र करने के लिए किया जा सकता है. हालांकि, इनमें मुख्य अंतर यह है कि MeasureClient में दिल की धड़कन की दर का डेटा उपलब्ध होने की जानकारी शामिल होती है, लेकिन PassiveClient में यह जानकारी शामिल नहीं होती.

डेटा टाइप

मेट्रिक अनुमानित डेटा Notes
HEART_RATE_BPM धड़कन प्रति मिनट [डेटा टाइप: Double] इसमें उपलब्धता की जानकारी भी शामिल होती है

इस्तेमाल की जा सकने वाली सुविधाएं

डिवाइस, कसरत के डेटा टाइप और पैसिव मॉनिटरिंग के डेटा टाइप के अलावा, इवेंट ट्रिगर करने के लिए अन्य सुविधाएं भी उपलब्ध कराते हैं. जैसे, कसरत शुरू करना और नींद में होने या जागे होने जैसी स्थिति का पता लगाना. इनमें से कुछ सुविधाएं सभी डिवाइसों पर उपलब्ध हैं, जबकि कुछ सिर्फ़ कुछ डिवाइसों पर उपलब्ध हैं.

इवेंट ट्रिगर

सभी डिवाइसों पर ये सामान्य ट्रिगर काम करते हैं:

  • दूरी और कदमों के लिए रोज़ के लक्ष्य
  • कदम, दूरी, और अवधि के लिए कसरत के लक्ष्य.

ऐसा हो सकता है कि अन्य डिवाइसों पर, इवेंट ट्रिगर करने की ज़्यादा बेहतर सुविधाएं उपलब्ध हों. कुछ उदाहरण यहां दिए गए हैं:

  • तैरते समय लैप की गिनती करना
  • खर्च की गई कैलोरी के लिए कसरत के लक्ष्य
  • तेज़ गति से कसरत करने के लक्ष्य

राज्य

सभी डिवाइसों पर, बुनियादी तौर पर स्थिति की जानकारी देने की सुविधा काम करती है. स्टेट फ़ंक्शन का मतलब यह है कि उपयोगकर्ता फ़िलहाल कसरत कर रहा है या नहीं

अन्य डिवाइसों में, बैटरी की स्थिति के बारे में ज़्यादा जानकारी मिल सकती है. स्टेट से जुड़ी कुछ अन्य सुविधाओं में यह पता लगाना शामिल है कि कसरत अपने-आप रुक गई है या अपने-आप फिर से शुरू हो गई है. इसके अलावा, यह भी पता लगाया जा सकता है कि उपयोगकर्ता कब जगा है या कब सोया है.

पैसिव मॉनिटरिंग में सेहत से जुड़ी सूचनाएं

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