Wear OS के लिए अलग-अलग बनाम स्टैंडअलोन ऐप्लिकेशन

हमारा सुझाव है कि Wear OS ऐप्लिकेशन, फ़ोन से अलग काम करें, ताकि उपयोगकर्ता इन कामों को कर सकें Android या iOS फ़ोन के बिना, स्मार्टवॉच पर टास्क पूरे किए जा सकते हैं. अगर आपका स्मार्टवॉच ऐप्लिकेशन फ़ोन से इंटरैक्शन की ज़रूरत है, तो आपको अपने Wear OS ऐप्लिकेशन को नॉन-स्टैंडअलोन के तौर पर मार्क करना होगा और यह पक्का करने के लिए कदम उठाएं कि उपयोगकर्ता के पास फ़ोन ऐप्लिकेशन मौजूद है.

अपने ऐप्लिकेशन का प्लान बनाएं

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

के ज़रिए डिस्ट्रिब्यूशन के लिए अपना ऐप्लिकेशन सेट अप करने के बारे में जानकारी के लिए Google Play Store पर जाकर, Wear OS ऐप्लिकेशन पैकेज और डिस्ट्रिब्यूट करें और इन ऐप्लिकेशन का इस्तेमाल शुरू करने से जुड़ी गाइड Android ऐप्लिकेशन बंडल.

नए ऐप्लिकेशन के लिए, टारगेट एपीआई लेवल 30 या उससे ज़्यादा होना चाहिए. ज़्यादा जानकारी के लिए, यह देखें Google Play के टारगेट एपीआई को पूरा करें लेवल की ज़रूरी शर्तें पूरी करनी होंगी. सेट करें यह पक्का करने के लिए कि आपका ऐप्लिकेशन ठीक से काम करे, targetSdkVersion से एपीआई लेवल 30 (Wear OS 3) पर लेवल 30 सबसे नए वर्शन पर काम करता है.

नेटवर्क अनुरोधों और हाई-बैंडविड्थ नेटवर्क ऐक्सेस के बारे में जानकारी के लिए, देखें Wear OS पर नेटवर्क को ऐक्सेस और सिंक करने की सुविधा.

किसी ऐप्लिकेशन को Wear OS ऐप्लिकेशन के तौर पर तय करना

आपको अपने ऐप्लिकेशन की Android मेनिफ़ेस्ट फ़ाइल में <uses-feature> टैग तय करना होगा. यह बताने के लिए कि यह स्मार्टवॉच का ऐप्लिकेशन है, इस तरह की कोई एंट्री जोड़ें:

  <manifest>
  ...
  <uses-feature android:name="android.hardware.type.watch" />
  ...
  </manifest>
  

किसी ऐप्लिकेशन की पहचान स्टैंडअलोन या नॉन-स्टैंडअलोन के तौर पर करना

स्मार्टवॉच के लिए बने ऐप्लिकेशन को स्टैंडअलोन या नॉन-स्टैंडअलोन माना जाता है:

  • स्टैंडअलोन: यह पूरी तरह से अलग ऐप्लिकेशन है, जिसमें कोर के लिए फ़ोन ऐप्लिकेशन की ज़रूरत नहीं होती सुविधाएँ. हालांकि, "फ़ोन पर खोलें" प्रॉम्प्ट स्वीकार किए जाते हैं. हालांकि, ऐप्लिकेशन को जनरेटिव एआई की मदद इसका मतलब है कि लोगों के लिए, ऐप्लिकेशन के फ़ंक्शन, जैसे कि शॉर्टलिंक या क्यूआर कोड को पूरा करना टेदर किए गए फ़ोन पर.
  • नॉन-स्टैंडअलोन: डिपेंडेंट ऐप्लिकेशन, जिसके लिए फ़ोन या दूसरे डिवाइस पर काम करने की ज़रूरत होती है मुख्य सुविधाएं. यह विकल्प, ऐप्लिकेशन के लिए तब सबसे अच्छा होता है, जब उनके लिए आपके पास किसी अन्य विकल्प का इस्तेमाल करके, जैसे कि क्यूआर कोड या शॉर्टलिंक पुष्टि करने जैसे मुख्य ऐप्लिकेशन फ़ंक्शन को पूरा करने के लिए किया जा सकता है.

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

Google यह पुष्टि करता है कि ऐप्लिकेशन के दौरान, किसी ऐप्लिकेशन का स्टैंडअलोन स्टेटस कितना सही है पेश किया जा रहा है. यह मान इस बात पर असर डालता है कि किस डिवाइस पर Play Store में ऐप्लिकेशन किसको दिखेंगे अनटेदर किए गए डिवाइस, जैसे कि Wear OS डिवाइस जो हैंडहेल्ड से नहीं जोड़े गए हैं डिवाइस. नॉन-स्टैंडअलोन ऐप्लिकेशन और ऐसे ऐप्लिकेशन जिन्हें डेवलपर ने गलत तरीके से इस्तेमाल किया है "स्टैंडअलोन" के रूप में निर्दिष्ट करें—यह इन अनटेदर किए गए उपयोगकर्ताओं के लिए उपलब्ध नहीं था डिवाइस.

अपने Wear OS ऐप्लिकेशन में, meta-data एलिमेंट com.google.android.wearable.standalone की वैल्यू सेट करें का इस्तेमाल करें.

अगर आपका स्मार्टवॉच ऐप्लिकेशन पूरी तरह से अलग, स्टैंडअलोन ऐप्लिकेशन है, तो को सेट करके इसे Google Play Store पर देख सकते हैं com.google.android.wearable.standalone से true की वैल्यू:

<application>
...
  <meta-data
    android:name="com.google.android.wearable.standalone"
    android:value="true" />
...
</application>

अगर आपका स्मार्टवॉच ऐप्लिकेशन स्टैंडअलोन नहीं है और इसकी मुख्य सुविधाओं के लिए, किसी दूसरे ऐप्लिकेशन का इस्तेमाल किया जा रहा है, तो com.google.android.wearable.standalone की वैल्यू को इस पर सेट करें false. इसका मतलब है कि स्मार्टवॉच के लिए ऐप्लिकेशन का इस्तेमाल करने के लिए, किसी दूसरे डिवाइस की ज़रूरत होती है. हालांकि, इसका इस्तेमाल करने के लिए ज़रूरी नहीं है इससे Google Play Store पर आपके ऐप्लिकेशन के प्रमोशन पर असर पड़ता है.

ध्यान दें: भले ही com.google.android.wearable.standalone का मान हो false, स्मार्टवॉच को फ़ोन ऐप्लिकेशन के इंस्टॉल होने से पहले इंस्टॉल किया जा सकता है. इसलिए, अगर स्मार्टवॉच के लिए पता लगाता है कि कंपैनियन फ़ोन ज़रूरी फ़ोन ऐप्लिकेशन मौजूद नहीं है, जैसा कि इस पेज पर बताया गया है, उपयोगकर्ता को फ़ोन ऐप्लिकेशन इंस्टॉल करने का निर्देश देगा.

शेयर किया गया कोड और डेटा स्टोरेज

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

वैकल्पिक रूप से, कोड जो ख़ास तौर पर किसी डिवाइस के नाप या आकार के लिए होता है वह किसी अलग मॉड्यूल में हो सकता है.

डेटा को स्थानीय तौर पर सेव करने के लिए, स्टैंडर्ड Android Storage एपीआई का इस्तेमाल किया जा सकता है किसी फ़ोन पर करते हैं. उदाहरण के लिए, आप शेयर की गई सेटिंग APIs या Room परसिस्टेंस लाइब्रेरी का इस्तेमाल करें.

किसी दूसरे डिवाइस पर अपने ऐप्लिकेशन का पता लगाएं

आपका स्मार्टवॉच ऐप्लिकेशन और उससे जुड़ा फ़ोन ऐप्लिकेशन उनमें से हर यह पता लगा सकता है कि कोई दूसरा ऐप्लिकेशन उपलब्ध है या नहीं.

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

जब कोई ऐप्लिकेशन उपयोगकर्ता के Wear OS नेटवर्क के नोड पर है. जैसे, फ़ोन, जोड़ी गई स्मार्टवॉच या क्लाउड में, CapabilityClient की मदद से अन्य ऐप्लिकेशन इसका पता लगा लेते हैं. ज़्यादा जानकारी के लिए, यह देखें विज्ञापन दिखाने की सुविधाएं.

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

आपको यह देखना होगा कि Play Store यहां उपलब्ध है या नहीं डिवाइस, क्योंकि सभी फ़ोन—जैसे कि iPhone— Play Store पर टैप करें.

यहां दिए सेक्शन में, दो स्थितियों के लिए सबसे सही तरीके बताए गए हैं:

  • स्मार्टवॉच के लिए स्टैंडअलोन ऐप्लिकेशन का इस्तेमाल करना ज़रूरी है.
  • आपके फ़ोन ऐप्लिकेशन के लिए अलग से स्मार्टवॉच ऐप्लिकेशन की ज़रूरत है.

आप Datalayer हेल्पर सैंपल, जो दिखाता है कि Datalayer हेल्पर लाइब्रेरी, का हिस्सा हॉरोलॉजिस्ट. इन हेल्पर की मदद से, हैंडहेल्ड के बीच के कनेक्शन पर नज़र रखी जा सकती है एक डिवाइस और एक Wear OS डिवाइस है. Reader Revenue Manager को सेट अप करने के बारे में उन क्लास के बारे में जानने के लिए जो नीचे दिए गए सेक्शन में हैं, यहां देखें: 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>

अधिक जानकारी के लिए, देखें विज्ञापन दिखाने की सुविधाएं.

ऐप्लिकेशन की पहचान करना और स्मार्टवॉच से यूआरएल खोलना

स्मार्टवॉच ऐप्लिकेशन यह पता लगा सकता है कि उपयोगकर्ता के कंपैनियन फ़ोन में फ़ोन ऐप. यह तरीका अपनाएं:

  1. इसका इस्तेमाल करें यह देखने के लिए कि आपका फ़ोन ऐप्लिकेशन इंस्टॉल है या नहीं, CapabilityClient कनेक्ट किए गए फ़ोन पर. ज़्यादा जानकारी के लिए, देखें GitHub पर Datalayer हेल्पर सैंपल.
  2. अगर आपके फ़ोन पर आपका फ़ोन ऐप इंस्टॉल नहीं है, तो PhoneDeviceType.getPhoneDeviceType() तरीका इस्तेमाल करके देखें कि फ़ोन किस तरह का है. ज़्यादा जानकारी के लिए, यहां मौजूद सेक्शन देखें.
  3. अगर आपने PhoneDeviceType.DEVICE_TYPE_ANDROID वापस किया जाता है, तो फ़ोन एक Android फ़ोन है. कॉल करें Wear OS डिवाइस पर: RemoteActivityHelper.startRemoteActivity() फ़ोन पर Play Store खोलो. अपने फ़ोन के लिए मार्केट यूआरआई का इस्तेमाल करें है, जो आपके Wear ऐप्लिकेशन के यूआरआई से अलग हो सकता है. उदाहरण के लिए, बाज़ार यूआरआई, जैसे: market://details?id=com.example.android.wearable.wear.finddevices.
  4. अगर आपने PhoneDeviceType.DEVICE_TYPE_IOS वापस किया गया हो, फ़ोन एक iOS फ़ोन है, जिसमें Play नहीं है स्टोर उपलब्ध है. iPhone पर App Store खोलें Wear पर RemoteActivityHelper.startRemoteActivity() को कॉल करके ओएस डिवाइस. आप अपने एप्लिकेशन का iTunes URL निर्दिष्ट कर सकते हैं, जैसे https://itunes.apple.com/us/app/yourappname.

    Wear OS से, प्रोग्राम के हिसाब से यह तय नहीं किया जा सकता कि आपके फ़ोन में मौजूद ऐप्लिकेशन किसी iOS डिवाइस पर इंस्टॉल है. सबसे सही तरीका यह है कि उपयोगकर्ता को मैन्युअल रूप से ट्रिगर करने का तरीका ऐप्लिकेशन स्टोर खुल रहा है.

ध्यान दें: RemoteActivityHelper एपीआई का इस्तेमाल करें, जिसके बारे में ऊपर बताया गया है यह तय करें कि फ़ोन पर कोई भी यूआरएल, स्मार्टवॉच से खोला जाए, इसके लिए, किसी फ़ोन ऐप्लिकेशन की ज़रूरत न हो.

जोड़े गए फ़ोन के टाइप का पता लगाने के बारे में जानकारी

यहां एक स्निपेट दिया गया है, जो getPhoneDeviceType() तरीके का इस्तेमाल करके देखें कि घड़ी किस तरह के फ़ोन से जुड़ी है:

Kotlin

var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)

Java

int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);

getPhoneDeviceType() से मिली वैल्यू इनमें से एक तरीका है:

रिटर्न वैल्यू ब्यौरा
DEVICE_TYPE_ANDROID साथी फ़ोन एक Android डिवाइस है.
DEVICE_TYPE_IOS साथी फ़ोन एक iOS डिवाइस है.
DEVICE_TYPE_UNKNOWN साथी फ़ोन एक अनजान डिवाइस है.
DEVICE_TYPE_ERROR जोड़े गए फ़ोन का प्रकार तय करने में गड़बड़ी हुई; फिर से चेक करें बाद में बनाई जानी चाहिए.

Android फ़ोन से ऐप्लिकेशन की पहचान करने की सुविधा

आपका Android फ़ोन यह पता लगा सकता है कि उपयोगकर्ता के Wear OS डिवाइसों में आपका स्मार्ट वॉच के लिए उपलब्ध ऐप्लिकेशन. यह तरीका अपनाएं:

  1. इसका उपयोग करके NodeClient, उपयोगकर्ता की सभी स्मार्टवॉच ढूंढें फ़ोन. ज़्यादा जानकारी के लिए, देखें GitHub पर Datalayer हेल्पर सैंपल.
  2. इसका उपयोग करके CapabilityClient, देखें कि उपयोगकर्ता की किस स्मार्टवॉच में आपका ऐप्लिकेशन इंस्टॉल हो गया है.
  3. अगर आपका ऐप्लिकेशन उपयोगकर्ता की सभी स्मार्टवॉच पर इंस्टॉल नहीं किया गया है, तो उपयोगकर्ता को अनुमति दें Wear OS के बचे हुए डिवाइसों पर, फ़ोन में मौजूद Play Store को खोलने के लिए, RemoteActivityHelper.startRemoteActivity() तरीका. Wear OS ऐप्लिकेशन के लिए बाज़ार यूआरआई का इस्तेमाल करें. यह यह आपके फ़ोन ऐप्लिकेशन के यूआरआई से अलग होता है. उदाहरण के लिए, मार्केट यूआरआई का इस्तेमाल करें जैसे: market://details?id=com.example.android.wearable.wear.finddevices.

iPhone से जोड़ी गई स्मार्टवॉच की जगह की जानकारी का डेटा

iPhone से जोड़ी गई स्मार्टवॉच के लिए, स्मार्टवॉच पर जगह की जानकारी का डेटा पाने के लिए, फ़्यूज़्ड लोकेशन प्रोवाइडर (FLP). ज़्यादा जानकारी के लिए, यह देखें Wear OS पर जगह की जानकारी का पता लगाएं.

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

सिर्फ़ ज़रूरी डेटा पाएं

आम तौर पर, इंटरनेट से डेटा लेते समय, सिर्फ़ ज़रूरी डेटा. ऐसा न होने पर, काम में देरी हो सकती है. साथ ही, इनके इस्तेमाल के बारे में बताया गया है.

जब कोई स्मार्टवॉच ब्लूटूथ LE कनेक्शन के ज़रिए कनेक्ट की जाती है, तो आपका ऐप्लिकेशन प्रति सेकंड सिर्फ़ 4 किलोबाइट प्रति सेकंड की बैंडविड्थ तक पहुंच रखता है, ट्रैक किया जा सकता है. इसलिए, यहां दिया गया तरीका अपनाएं:

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

ऐसे मामलों में जहां हाई बैंडविथ नेटवर्क की ज़रूरत हो, देखें हाई बैंडविथ नेटवर्क ऐक्सेस.

अतिरिक्त कोड सैंपल

कॉन्टेंट बनाने Datalayer हेल्पर सैंपल, इस पेज पर बताए गए एपीआई के इस्तेमाल के बारे में बताता है.