हमारा सुझाव है कि Wear OS के ऐप्लिकेशन, फ़ोन से अलग काम करें. इससे लोग स्मार्टवॉच पर Android या iOS फ़ोन के बिना भी टास्क पूरे कर पाएंगे. अगर आपके स्मार्टवॉच ऐप्लिकेशन को फ़ोन से इंटरैक्ट करने की ज़रूरत है, तो आपको अपने Wear OS ऐप्लिकेशन को स्टैंडअलोन के तौर पर मार्क नहीं करना होगा . साथ ही, यह पक्का करना होगा कि लोगों के पास फ़ोन ऐप्लिकेशन उपलब्ध हो.
अपने ऐप्लिकेशन की योजना बनाना
Android ऐप्लिकेशन बंडल का इस्तेमाल करके, एक ही ऐप्लिकेशन की लिस्टिंग के तहत, हर उपयोगकर्ता के डिवाइस कॉन्फ़िगरेशन के लिए ऑप्टिमाइज़ किए गए Android पैकेज किट (एपीके) अपने-आप जनरेट किए जा सकते हैं. इससे लोग सिर्फ़ वह कोड और संसाधन डाउनलोड कर पाते हैं जिनकी उन्हें आपका ऐप्लिकेशन चलाने के लिए ज़रूरत होती है.
Google Play Store के ज़रिए ऐप्लिकेशन डिस्ट्रिब्यूट करने के लिए, उसे सेट अप करने के बारे में जानने के लिए, Wear OS के ऐप्लिकेशन पैकेज करना और उन्हें डिस्ट्रिब्यूट करना लेख पढ़ें. साथ ही, Android ऐप्लिकेशन बंडल का इस्तेमाल शुरू करने के लिए गाइड देखें.
नए ऐप्लिकेशन के लिए, टारगेट एपीआई लेवल 34 या उससे ज़्यादा होना चाहिए. ज़्यादा जानकारी के लिए, Google Play के टारगेट एपीआई लेवल की ज़रूरी शर्तें पूरी करना लेख पढ़ें. सबसे नए उपलब्ध एपीआई लेवल को टारगेट करने से, यह पक्का करने में मदद मिलती है कि आपका ऐप्लिकेशन, प्लैटफ़ॉर्म के मौजूदा वर्शन पर अच्छी तरह काम करे.
नेटवर्क के अनुरोधों और ज़्यादा बैंडविथ वाले नेटवर्क ऐक्सेस के बारे में जानने के लिए, Wear OS पर नेटवर्क ऐक्सेस और सिंक करना लेख पढ़ें.
किसी ऐप्लिकेशन को Wear OS ऐप्लिकेशन के तौर पर तय करना
आपको अपने ऐप्लिकेशन की Android मेनिफ़ेस्ट फ़ाइल में,
<uses-feature> टैग तय करना होगा.
यह बताने के लिए कि यह स्मार्टवॉच के लिए बना ऐप्लिकेशन है, यहां दिया गया उदाहरण देखें:
<uses-feature android:name="android.hardware.type.watch" />
किसी ऐप्लिकेशन को स्टैंडअलोन या नॉन-स्टैंडअलोन के तौर पर तय करना
स्मार्टवॉच के लिए बने ऐप्लिकेशन को स्टैंडअलोन या नॉन-स्टैंडअलोन माना जाता है:
- स्टैंडअलोन: यह पूरी तरह से इंडिपेंडेंट ऐप्लिकेशन होता है. इसकी मुख्य सुविधाओं के लिए, फ़ोन ऐप्लिकेशन की ज़रूरत नहीं होती . हालांकि, "फ़ोन पर खोलें" के प्रॉम्प्ट स्वीकार किए जा सकते हैं. साथ ही, ऐप्लिकेशन को लोगों के लिए, ऐप्लिकेशन के किसी फ़ंक्शन को पूरा करने के लिए दूसरे तरीके उपलब्ध कराने चाहिए. जैसे, शॉर्टलिंक या क्यूआर कोड. इसके लिए, टेदर किए गए फ़ोन पर निर्भर रहने की ज़रूरत नहीं है.
- नॉन-स्टैंडअलोन: यह डिपेंडेंट ऐप्लिकेशन होता है. इसकी मुख्य सुविधाओं के लिए, फ़ोन या किसी अन्य डिवाइस पर मौजूद ऐप्लिकेशन की ज़रूरत होती है. यह विकल्प उन ऐप्लिकेशन के लिए सबसे सही है जो किसी मुख्य ऐप्लिकेशन फ़ंक्शन को पूरा करने के लिए, आसानी से कोई दूसरा तरीका उपलब्ध नहीं करा सकते. जैसे, क्यूआर कोड या शॉर्टलिंक. उदाहरण के लिए, पुष्टि करना.
ध्यान दें: नॉन-स्टैंडअलोन ऐप्लिकेशन के लिए भी, लोग मोबाइल ऐप्लिकेशन से पहले Wear OS ऐप्लिकेशन इंस्टॉल कर सकते हैं. इसलिए, अगर आपके Wear OS ऐप्लिकेशन को पता चलता है कि आस-पास मौजूद किसी हैंडहेल्ड डिवाइस में ज़रूरी साथी ऐप्लिकेशन मौजूद नहीं है, तो लोगों को साथी ऐप्लिकेशन इंस्टॉल करने के लिए कहें.
ऐप्लिकेशन को उपलब्ध कराते समय, Google इस बात की पुष्टि करता है कि ऐप्लिकेशन का स्टैंडअलोन स्टेटस सही है या नहीं. इस वैल्यू से, बिना टेदर किए गए डिवाइसों पर Play Store में ऐप्लिकेशन की उपलब्धता पर असर पड़ता है. जैसे, Wear OS डिवाइस जो हैंडहेल्ड डिवाइसों से पेयर नहीं किए गए हैं. नॉन-स्टैंडअलोन ऐप्लिकेशन के साथ-साथ, वे ऐप्लिकेशन भी इन डिवाइसों पर लोगों के लिए उपलब्ध नहीं होते जिन्हें डेवलपर ने गलती से "स्टैंडअलोन" के तौर पर तय किया है.
अपने Wear OS ऐप्लिकेशन में, Android मेनिफ़ेस्ट फ़ाइल में मौजूद
meta-data एलिमेंट com.google.android.wearable.standalone
की वैल्यू सेट करें. इससे यह तय होगा कि आपका ऐप्लिकेशन स्टैंडअलोन है या नॉन-स्टैंडअलोन.
अगर आपका स्मार्टवॉच ऐप्लिकेशन पूरी तरह से इंडिपेंडेंट और स्टैंडअलोन है, तो Google Play Store को यह जानकारी दें. इसके लिए, com.google.android.wearable.standalone की वैल्यू true पर सेट करें:
<meta-data android:name="com.google.android.wearable.standalone" android:value="true" />
अगर आपका स्मार्टवॉच ऐप्लिकेशन नॉन-स्टैंडअलोन है और इसकी मुख्य सुविधाओं के लिए किसी दूसरे ऐप्लिकेशन पर निर्भर रहना पड़ता है, तो com.google.android.wearable.standalone की वैल्यू false पर सेट करें. इससे यह पता चलता है कि स्मार्टवॉच ऐप्लिकेशन के लिए किसी दूसरे डिवाइस की ज़रूरत है. हालांकि, इससे Google Play Store पर आपके ऐप्लिकेशन के प्रमोशन पर कोई असर नहीं पड़ता.
ध्यान दें:
भले ही, com.google.android.wearable.standalone की वैल्यू
false पर सेट हो, फिर भी फ़ोन ऐप्लिकेशन इंस्टॉल होने से पहले, स्मार्टवॉच ऐप्लिकेशन इंस्टॉल किया जा सकता है.
इसलिए, अगर आपके स्मार्टवॉच ऐप्लिकेशन को पता चलता है कि साथी फ़ोन में ज़रूरी फ़ोन ऐप्लिकेशन मौजूद नहीं है, तो लोगों को फ़ोन ऐप्लिकेशन इंस्टॉल करने के लिए कहें. इस बारे में ज़्यादा जानकारी इस पेज पर दी गई है.
शेयर किया गया कोड और डेटा स्टोरेज
Wear OS ऐप्लिकेशन और फ़ोन ऐप्लिकेशन के बीच कोड शेयर किया जा सकता है. उदाहरण के लिए, नेटवर्किंग के लिए सामान्य कोड, शेयर की गई लाइब्रेरी में हो सकता है.
इसके अलावा, किसी फ़ॉर्म फ़ैक्टर के लिए खास कोड , अलग मॉड्यूल में हो सकता है.
डेटा को स्थानीय तौर पर सेव करने के लिए, स्टैंडर्ड Android स्टोरेज एपीआई का इस्तेमाल किया जा सकता है. जैसे, फ़ोन पर किया जाता है. की-वैल्यू पेयर और टाइप किए गए ऑब्जेक्ट सेव करने के लिए, DataStore का इस्तेमाल किया जा सकता है. इसके अलावा, रूम परसिस्टेंट लाइब्रेरी का भी इस्तेमाल किया जा सकता है.
अपने ऐप्लिकेशन को किसी दूसरे डिवाइस पर ढूंढना
स्मार्टवॉच के लिए बना आपका ऐप्लिकेशन और उससे जुड़ा फ़ोन ऐप्लिकेशन , दोनों यह पता लगा सकते हैं कि दूसरा ऐप्लिकेशन उपलब्ध है या नहीं.
आपके फ़ोन और स्मार्टवॉच के ऐप्लिकेशन, पेयर किए गए डिवाइस पर अपनी मौजूदगी का विज्ञापन देने के लिए,
CapabilityClient का इस्तेमाल कर सकते हैं. वे ऐसा स्टैटिक या डाइनैमिक तरीके से कर सकते हैं.
जब कोई ऐप्लिकेशन, लोगों के Wear OS नेटवर्क में किसी नोड पर मौजूद होता है, तो CapabilityClient की मदद से दूसरे ऐप्लिकेशन उसका पता लगा सकते हैं. जैसे, फ़ोन, पेयर की गई स्मार्टवॉच या क्लाउड पर मौजूद ऐप्लिकेशन. ज़्यादा जानकारी के लिए,
सुविधाओं का विज्ञापन देना लेख पढ़ें.
अगर आपके किसी ऐप्लिकेशन को दूसरे ऐप्लिकेशन का पता नहीं चलता है, तो लोगों को उस डिवाइस पर Play Store की लिस्टिंग खोलने के लिए कहा जा सकता है जिस पर समस्या आ रही है. यह स्मार्टवॉच के उन ऐप्लिकेशन के लिए एक समाधान है जिन्हें ठीक से काम करने के लिए, अपने साथी फ़ोन ऐप्लिकेशन की ज़रूरत होती है.
आपको यह देखना होगा कि डिवाइस पर Play Store उपलब्ध है या नहीं, क्योंकि सभी फ़ोन—जैसे, iPhone—Play Store के साथ काम नहीं करते.
यहां दो स्थितियों के लिए सबसे सही तरीके बताए गए हैं:
- आपके स्टैंडअलोन स्मार्टवॉच ऐप्लिकेशन को फ़ोन ऐप्लिकेशन की ज़रूरत है.
- आपके फ़ोन ऐप्लिकेशन को स्टैंडअलोन स्मार्टवॉच ऐप्लिकेशन की ज़रूरत है.
इसके अलावा,
Datalayer helpers का सैंपल देखें. इसमें बताया गया है कि
Horologist का हिस्सा,
Datalayer helpers लाइब्रेरी का इस्तेमाल कैसे किया जाता है. इन हेल्पर की मदद से, हैंडहेल्ड
डिवाइस और Wear OS डिवाइस के बीच कनेक्शन की निगरानी की जा सकती है.
अगले सेक्शन में बताई गई क्लास के बारे में ज़्यादा जानने के लिए, Wear OS API रेफ़रंस देखें.
उस रेफ़रंस में,
PhoneTypeHelper क्लास के बारे में भी जानकारी दी गई है. इसमें
getPhoneDeviceType() तरीका शामिल है. इसकी मदद से,
आपका Wear OS ऐप्लिकेशन यह देख सकता है कि साथी फ़ोन, Android डिवाइस है या iOS डिवाइस.
अपने ऐप्लिकेशन का पता लगाने के लिए, सुविधाओं के नाम तय करना
`res/values/wear.xml` फ़ाइल में, हर डिवाइस टाइप (स्मार्टवॉच या फ़ोन) के लिए, सुविधा के नाम के लिए कोई यूनीक स्ट्रिंग तय करें.
उदाहरण के लिए, आपके मोबाइल मॉड्यूल में, wear.xml फ़ाइल
यह शामिल हो सकता है:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_phone_app</item> </string-array> </resources>
आपके Wear OS मॉड्यूल में, wear.xml फ़ाइल में सुविधा के नाम के लिए कोई दूसरी वैल्यू शामिल होती है. जैसे, यह:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_wear_app</item> </string-array> </resources>
ज़्यादा जानकारी के लिए, सुविधाओं का विज्ञापन देना लेख पढ़ें.
ऐप्लिकेशन का पता लगाना और स्मार्टवॉच से यूआरएल खोलना
स्मार्टवॉच के लिए बना आपका ऐप्लिकेशन यह पता लगा सकता है कि लोगों के साथी फ़ोन में आपका फ़ोन ऐप्लिकेशन है या नहीं. इसके लिए, यह तरीका अपनाएं:
-
का इस्तेमाल करके, यह देखें कि पेयर किए गए फ़ोन पर आपका फ़ोन ऐप्लिकेशन इंस्टॉल है या नहीं.
CapabilityClientज़्यादा जानकारी के लिए, GitHub पर Datalayer helpers का सैंपल देखें. -
अगर फ़ोन पर आपका फ़ोन ऐप्लिकेशन इंस्टॉल नहीं है, तो
PhoneDeviceType.getPhoneDeviceType()तरीके का इस्तेमाल करके, फ़ोन का टाइप देखें. ज़्यादा जानकारी के लिए, अगला सेक्शन देखें. -
अगर
PhoneDeviceType.DEVICE_TYPE_ANDROIDदिखता है, तो इसका मतलब है कि फ़ोन, Android फ़ोन है. फ़ोन पर Play Store खोलने के लिए, Wear OS डिवाइस परRemoteActivityHelper.startRemoteActivity()को कॉल करें. अपने फ़ोन ऐप्लिकेशन के लिए, मार्केट यूआरआई का इस्तेमाल करें. यह आपके Wear ऐप्लिकेशन के यूआरआई से अलग हो सकता है. उदाहरण के लिए, इस तरह का मार्केट यूआरआई इस्तेमाल करें:market://details?id=com.example.android.wearable.wear.finddevices. -
अगर
PhoneDeviceType.DEVICE_TYPE_IOSदिखता है, तो इसका मतलब है कि फ़ोन, iOS फ़ोन है और इस पर Play Store उपलब्ध नहीं है. Wear OS डिवाइस परRemoteActivityHelper.startRemoteActivity()को कॉल करके, iPhone पर App Store खोलें. अपने ऐप्लिकेशन का iTunes यूआरएल तय किया जा सकता है. जैसे,https://itunes.apple.com/us/app/yourappname.Wear OS से, प्रोग्राम के ज़रिए यह पता नहीं लगाया जा सकता कि आपका फ़ोन ऐप्लिकेशन, iOS डिवाइस पर इंस्टॉल है या नहीं. हमारा सुझाव है कि लोगों को App Store को मैन्युअल तरीके से खोलने का कोई तरीका उपलब्ध कराएं.
ध्यान दें: यह तय करने के लिए कि स्मार्टवॉच से कोई भी यूआरएल फ़ोन पर खोला जाए और इसके लिए किसी फ़ोन ऐप्लिकेशन की ज़रूरत न हो, पिछले सेक्शन में बताए गए तरीके से RemoteActivityHelper एपीआई का इस्तेमाल करें.
पेयर किए गए फ़ोन का टाइप पता करने की जानकारी
यहां एक स्निपेट दिया गया है. इसमें getPhoneDeviceType() तरीके का इस्तेमाल करके, यह देखा जाता है कि स्मार्टवॉच किस टाइप के फ़ोन से पेयर की गई है:
var phoneDeviceType: Int = PhoneTypeHelper.getPhoneDeviceType(this)
getPhoneDeviceType()
तरीके से मिलने वाली वैल्यू इनमें से कोई एक होती है:
| रिटर्न वैल्यू | ब्यौरा |
|---|---|
DEVICE_TYPE_ANDROID
|
साथी फ़ोन, Android पर चलने वाला डिवाइस है. |
DEVICE_TYPE_IOS
|
साथी फ़ोन, iOS डिवाइस है. |
DEVICE_TYPE_UNKNOWN
|
साथी फ़ोन, किस तरह का डिवाइस है, इसके बारे में जानकारी नहीं है. |
DEVICE_TYPE_ERROR
|
पेयर किए गए फ़ोन का टाइप तय करने में कोई गड़बड़ी हुई. इसकी जांच बाद में की जानी चाहिए. |
Android फ़ोन से ऐप्लिकेशन का पता लगाना
आपका Android फ़ोन यह पता लगा सकता है कि लोगों के Wear OS डिवाइसों पर आपका स्मार्टवॉच ऐप्लिकेशन है या नहीं. इसके लिए, यह तरीका अपनाएं:
-
NodeClientका इस्तेमाल करके, लोगों के फ़ोन से कनेक्ट की गई सभी स्मार्टवॉच ढूंढें. ज़्यादा जानकारी के लिए, GitHub पर Datalayer helpers का सैंपल देखें. -
`CapabilityClient` का इस्तेमाल करके, यह देखें कि लोगों की किन स्मार्टवॉच पर आपका ऐप्लिकेशन इंस्टॉल है.
CapabilityClient -
अगर लोगों की सभी स्मार्टवॉच पर आपका ऐप्लिकेशन इंस्टॉल नहीं है, तो लोगों को फ़ोन से बाकी बचे Wear OS डिवाइसों पर Play Store खोलने दें.
RemoteActivityHelper.startRemoteActivity()तरीके का इस्तेमाल करके. Wear OS ऐप्लिकेशन के लिए, मार्केट यूआरआई का इस्तेमाल करें. यह आपके फ़ोन ऐप्लिकेशन के यूआरआई से अलग हो सकता है. उदाहरण के लिए, इस तरह का मार्केट यूआरआई इस्तेमाल करें: जैसे:market://details?id=com.example.android.wearable.wear.finddevices.
iPhone से पेयर की गई स्मार्टवॉच के लिए, जगह की जानकारी का डेटा
iPhone से पेयर की गई स्मार्टवॉच के लिए, स्मार्टवॉच पर जगह की जानकारी का डेटा पाने के लिए, Fused Location Provider (FLP) का इस्तेमाल करें. ज़्यादा जानकारी के लिए, Wear OS पर जगह की जानकारी का पता लगाना लेख पढ़ें.
अगर साथी फ़ोन उपलब्ध है, तो FLP, जगह की जानकारी के डेटा के लिए साथी फ़ोन का इस्तेमाल करता है.
सिर्फ़ ज़रूरी डेटा पाना
आम तौर पर, इंटरनेट से डेटा पाने के दौरान, सिर्फ़ ज़रूरी डेटा पाएं. ऐसा न करने पर, ज़रूरत से ज़्यादा इंतज़ार करना पड़ सकता है. साथ ही, मेमोरी और बैटरी का इस्तेमाल भी बढ़ सकता है.
जब कोई स्मार्टवॉच, Bluetooth LE कनेक्शन से कनेक्ट होती है, तो आपके ऐप्लिकेशन के पास हर सेकंड में सिर्फ़ चार किलोबाइट की बैंडविथ का ऐक्सेस हो सकता है. यह स्मार्टवॉच पर निर्भर करता है. इसलिए, हमारा सुझाव है कि आप यह तरीका अपनाएं:
- अपने नेटवर्क के अनुरोधों और जवाबों की ऑडिट करें. इससे यह पता चलेगा कि फ़ोन ऐप्लिकेशन के लिए, ज़रूरत से ज़्यादा डेटा तो नहीं भेजा जा रहा है.
- स्मार्टवॉच पर नेटवर्क के ज़रिए बड़ी इमेज भेजने से पहले, उनका साइज़ कम करें.
उन मामलों के लिए जहां ज़्यादा बैंडविथ वाले नेटवर्क की ज़रूरत होती है, ज़्यादा बैंडविथ वाले नेटवर्क का ऐक्सेस लेख पढ़ें.
कोड के अन्य सैंपल
Datalayer helpers के सैंपल में, इस पेज पर बताए गए एपीआई के इस्तेमाल के बारे में ज़्यादा जानकारी दी गई है.