डिफ़ॉल्ट रूप से, फ़ोन पर मौजूद किसी ऐप्लिकेशन से सूचनाएं, जोड़ी गई सभी स्मार्टवॉच पर भेजी जाती हैं. अगर आपने कोई स्मार्टवॉच ऐप्लिकेशन बनाया है और वह पेयर किए गए फ़ोन पर भी मौजूद है, तो उपयोगकर्ताओं को डुप्लीकेट सूचनाएं मिल सकती हैं. इनमें से एक सूचना, फ़ोन ऐप्लिकेशन से जनरेट और ब्रिज की गई होगी. वहीं, दूसरी सूचना स्मार्टवॉच ऐप्लिकेशन से जनरेट की गई होगी. Wear OS में ऐसी सुविधाएं शामिल हैं जिनसे यह कंट्रोल किया जा सकता है कि सूचनाएं कब और कैसे ब्रिज की जाती हैं.
डुप्लीकेट सूचनाएं पाने से बचना
जब किसी बाहरी सोर्स, जैसे कि Firebase क्लाउड से मैसेज से सूचनाएं बनाई जाती हैं, तो आपका मोबाइल ऐप्लिकेशन और पहनने योग्य डिवाइस पर मौजूद ऐप्लिकेशन, दोनों ही स्मार्टवॉच पर अपनी-अपनी सूचनाएं दिखा सकते हैं. इस तरह के डुप्लीकेट से बचने के लिए, अपने Wearable ऐप्लिकेशन में प्रोग्राम के हिसाब से ब्रिजिंग की सुविधा बंद करें.
ब्रिज टैग का इस्तेमाल करना
अगर आपको मोबाइल ऐप्लिकेशन पर बनाई गई कुछ सूचनाओं को स्मार्टवॉच पर भेजना है, तो ब्रिज टैग सेट करें. ऐसा तब करें, जब आपने स्मार्टवॉच पर ऐप्लिकेशन इंस्टॉल किया हो.
सूचना पर ब्रिज टैग सेट करने के लिए, setBridgeTag(String) तरीके का इस्तेमाल करें. इसका उदाहरण यहां दिया गया है:
val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend( NotificationCompat.WearableExtender() .setBridgeTag("tagOne") ) .build()
ब्रिजिंग की सुविधा बंद करना
आपके पास कुछ सूचनाओं या सभी सूचनाओं के लिए, ब्रिजिंग की सुविधा बंद करने का विकल्प होता है. हमारा सुझाव है कि आप ब्रिजिंग की सुविधा को चुनिंदा तौर पर बंद करें.
कुछ सूचनाओं के लिए ब्रिजिंग की सुविधा बंद करना
ब्रिजिंग को डाइनैमिक तरीके से बंद किया जा सकता है. साथ ही, टैग के आधार पर कुछ सूचनाओं को अनुमति दी जा सकती है. उदाहरण के लिए, tagOne, tagTwo या tagThree के तौर पर टैग की गई सूचनाओं को छोड़कर, अन्य सभी सूचनाओं के लिए ब्रिजिंग की सुविधा बंद करने के लिए, BridgingConfig ऑब्जेक्ट का इस्तेमाल करें. इसका उदाहरण यहां दिया गया है:
// In this example, bridging is only enabled for tagOne, tagTwo and tagThree. BridgingManager.fromContext(context).setConfig( BridgingConfig.Builder(context, isBridgingEnabled = false) .addExcludedTags(listOf("tagOne", "tagTwo", "tagThree")) .build() )
सभी सूचनाओं के लिए ब्रिजिंग की सुविधा बंद करना (हम ऐसा करने का सुझाव नहीं देते)
ध्यान दें: सभी सूचनाओं के लिए ब्रिजिंग की सुविधा बंद करने का सुझाव नहीं दिया जाता. इसकी वजह यह है कि ब्रिजिंग का कॉन्फ़िगरेशन, वॉच ऐप्लिकेशन इंस्टॉल होते ही मेनिफ़ेस्ट में सेट हो जाता है. अगर उपयोगकर्ता को सूचनाएं पाने से पहले, वॉच ऐप्लिकेशन खोलकर उसे सेट अप करना पड़ता है, तो हो सकता है कि उसे सूचनाएं न मिलें.
किसी फ़ोन ऐप्लिकेशन से मिलने वाली सभी सूचनाओं को ब्रिज होने से रोकने के लिए, घड़ी के ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में <meta-data> एंट्री का इस्तेमाल करें. इसका उदाहरण यहां दिया गया है:
<!-- Beware, this can have unintended consequences before the user is signed-in --> <meta-data android:name="com.google.android.wearable.notificationBridgeMode" android:value="NO_BRIDGING" />
ध्यान दें: रनटाइम के दौरान ब्रिजिंग कॉन्फ़िगरेशन तय करने से, Android मेनिफ़ेस्ट फ़ाइल में ब्रिजिंग से जुड़ी सेटिंग बदल जाती है.
मिलती-जुलती सूचनाओं को सिंक करने के लिए, खारिज करने का आईडी सेट करना
ब्रिजिंग मोड की सुविधा का इस्तेमाल करके, ब्रिजिंग को रोकने पर सूचनाएं खारिज करने की जानकारी, उपयोगकर्ता के सभी डिवाइसों पर सिंक नहीं होती.
हालांकि, अगर मोबाइल डिवाइस और स्मार्टवॉच, दोनों पर एक जैसी सूचनाएं बनाई जाती हैं, तो आपको यह पक्का करना होगा कि उपयोगकर्ता के किसी एक डिवाइस पर सूचना खारिज करने पर, दोनों डिवाइसों पर सूचनाएं खारिज हो जाएं.
NotificationCompat.WearableExtender में, ग्लोबल यूनीक आईडी सेट किया जा सकता है. इससे सूचना खारिज होने पर, जोड़ी गई स्मार्टवॉच पर मौजूद एक ही आईडी वाली अन्य सूचनाएं भी खारिज हो जाती हैं.
NotificationCompat.WearableExtender क्लास में ऐसे तरीके होते हैं जिनकी मदद से, सूचना खारिज करने के आईडी इस्तेमाल किए जा सकते हैं. यहां दिए गए उदाहरण में इसकी जानकारी दी गई है:
सूचना खारिज होने पर, एक ही डिसमिसल आईडी वाली अन्य सभी सूचनाएं, स्मार्टवॉच और फ़ोन पर खारिज हो जाती हैं. खारिज किए गए आईडी को वापस पाने के लिए, getDismissalId() का इस्तेमाल करें
यहां दिए गए उदाहरण में, नई सूचना के लिए दुनिया भर में इस्तेमाल होने वाला यूनीक आईडी दिया गया है, ताकि सूचनाएं खारिज होने की जानकारी सिंक हो सके:
val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend( NotificationCompat.WearableExtender() .setDismissalId("abc123") ) .build()
ध्यान दें: सूचना खारिज करने के आईडी तब काम करते हैं, जब स्मार्टवॉच को Android फ़ोन से जोड़ा गया हो. हालांकि, अगर स्मार्टवॉच को iPhone से जोड़ा गया है, तो ये आईडी काम नहीं करते.
जब सूचनाएं ब्रिज नहीं की जाती हैं
इस तरह की सूचनाएं, ब्रिज नहीं की जाती हैं:
- सिर्फ़ स्थानीय प्रॉडक्ट के लिए सूचनाएं सेट करने के लिए,
Notification.Builder.setLocalOnly(boolean)का इस्तेमाल किया जाता है. Notification.Builder.setOngoing(boolean)याNotification.FLAG_ONGOING_EVENTका इस्तेमाल करके सेट की गई बैकग्राउंड में जारी गतिविधि की सूचनाएँ.Notification.FLAG_NO_CLEARका इस्तेमाल करके सेट की गई ऐसी सूचनाएं जिन्हें खारिज नहीं किया जा सकता.- ऐसी सूचनाएं जिनके लिए, पहने जाने वाले डिवाइस पर मौजूद साथी ऐप्लिकेशन ने सूचनाएं शेयर करने की सुविधा बंद कर दी है. इसके बारे में पहले बताया जा चुका है.
ब्रिज की गई सूचनाओं के लिए सबसे सही तरीके
वियरेबल डिवाइस पर ब्रिज की गई सूचनाएं भेजने या हटाने में समय लगता है. सूचनाएं डिज़ाइन करते समय, इस बात का ध्यान रखें कि इस वजह से होने वाली देरी की वजह से, कोई समस्या न हो. यहां दिए गए दिशा-निर्देशों से यह पक्का करने में मदद मिलती है कि आपकी ब्रिज की गई सूचनाएं, एसिंक्रोनस सूचनाओं के साथ काम करती हैं:
- फ़ोन पर किसी सूचना को रद्द करने पर, स्मार्टवॉच पर उससे जुड़ी सूचना को रद्द होने में कुछ समय लग सकता है. इस दौरान, उपयोगकर्ता उस सूचना पर मौजूद किसी एक इंटेंट को भेज सकता है. इस वजह से, सूचनाएं रद्द करने के बाद भी, आपके ऐप्लिकेशन को सूचनाओं से जुड़े लंबित इंटेंट मिलते रहेंगे: सूचनाएं रद्द करते समय, उन सूचनाओं के लंबित इंटेंट रिसीवर को मान्य रखें.
- सूचनाओं के पूरे स्टैक को एक साथ रद्द न करें और न ही फिर से ट्रिगर करें. सिर्फ़ उन सूचनाओं में बदलाव करें या उन्हें हटाएं जिनमें बदलाव किया गया है. इससे, पहनने लायक डिवाइस को अपडेट करने में लगने वाला समय कम हो जाता है. साथ ही, बैटरी लाइफ़ पर आपके ऐप्लिकेशन का असर कम हो जाता है.
डिज़ाइन से जुड़ी बातें
Wear OS की सूचनाओं के लिए, डिज़ाइन से जुड़े दिशा-निर्देश अलग होते हैं. ज़्यादा जानकारी के लिए, Wear OS के डिज़ाइन से जुड़े दिशा-निर्देश देखें.