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 की अन्य सेवाओं से नहीं मिलता. हर डेटा पॉइंट में, सटीक वैल्यू (इसे हॉरिज़ॉन्टल पोज़िशन की गड़बड़ी भी कहा जाता है) और उपलब्धता की जानकारी भी शामिल होती है.
चरण [डेटा टाइप: लंबा] कसरत के दौरान, कदमों की संख्या लगातार बढ़ती रहती है. इसमें कसरत रोकने के दौरान का समय शामिल नहीं होता
DISTANCE मीटर [डेटा टाइप: डबल] अगर जगह की जानकारी जीपीएस पर आधारित है, तो उससे कैलकुलेट किया जाता है. अगर ऐसा नहीं है, तो कदमों की संख्या से कैलकुलेट किया जाता है. कुल का मतलब, कसरत की पूरी अवधि से है. इसमें कसरत को रोकने के दौरान बिताया गया समय शामिल नहीं होता.
गति [मीटर / सेकंड] [डेटा टाइप: डबल] कम से कम, ज़्यादा से ज़्यादा, और औसत वैल्यू दिखाता है. ये कसरत के दौरान के आंकड़े हैं. इनमें कसरत रोके जाने के दौरान का समय शामिल नहीं है.
रफ़्तार [seconds / meter] [Data type: Double] अगर स्पीड 0 है, तो डिफ़ॉल्ट वैल्यू 0 होती है. औसत, कसरत की अवधि के हिसाब से तय किए जाते हैं. इसमें कसरत रोके जाने का समय शामिल नहीं होता.
ELEVATION_GAIN मीटर. [डेटा टाइप: डबल] ऊंचाई में पॉज़िटिव बदलाव. यह कुल समय, कसरत की पूरी अवधि के हिसाब से रिपोर्ट किया जाता है. इसमें कसरत रोकने के दौरान बिताया गया समय शामिल नहीं होता.
TOTAL_CALORIES kCal [डेटा टाइप: Double] बेसल मेटाबॉलिक रेट में, शारीरिक गतिविधि के दौरान खर्च हुई कैलोरी को जोड़ा जाता है. यहां दिखाई गई कैलोरी, सिस्टम सेटिंग में उपयोगकर्ता की लंबाई, वज़न, उम्र, और लिंग के हिसाब से तय की जाती हैं. कैलोरी की गिनती में, आपके ऐप्लिकेशन में इकट्ठा किया गया उपयोगकर्ता की प्रोफ़ाइल का कोई भी डेटा शामिल नहीं किया जाता. बताई गई कुल कैलोरी, कसरत की अवधि के हिसाब से होती है. इसमें कसरत रोकने का समय शामिल नहीं होता.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MeasureClient

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

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

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

डेटा टाइप

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

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

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

इवेंट ट्रिगर

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

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

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

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

राज्य

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

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

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

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