सूचनाओं के लिए ब्रिज के विकल्प

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

डुप्लीकेट सूचनाएं पाने से बचना

Firebase Cloud Messaging जैसे किसी बाहरी सोर्स से सूचनाएं बनाने पर, आपके फ़ोन और स्मार्टवॉच पर मौजूद ऐप्लिकेशन, स्मार्टवॉच पर अपनी-अपनी सूचनाएं दिखा सकते हैं. डुप्लीकेट होने से बचने के लिए, अपने स्मार्टवॉच ऐप्लिकेशन में प्रोग्राम के हिसाब से ब्रिजिंग की सुविधा बंद करें.

ब्रिज टैग का इस्तेमाल करना

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

नीचे दिए गए कोड सैंपल में दिखाए गए तरीके से, 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" />

मिलती-जुलती सूचनाओं को सिंक करने के लिए, खारिज करने का आईडी सेट करना

ब्रिजिंग मोड की सुविधा का इस्तेमाल करके, ब्रिजिंग को रोकने पर, किसी उपयोगकर्ता के सभी डिवाइसों पर सूचनाएं खारिज करने की सुविधा सिंक नहीं होती.

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

NotificationCompat.WearableExtender में, ग्लोबल यूनीक आईडी सेट किया जा सकता है. इससे, जब कोई उपयोगकर्ता किसी सूचना को खारिज करता है, तो पेयर की गई स्मार्टवॉच पर मौजूद एक ही आईडी वाली अन्य सूचनाएं भी खारिज हो जाती हैं.

NotificationCompat.WearableExtender क्लास में ऐसे तरीके होते हैं जिनकी मदद से, सूचना खारिज करने के आईडी इस्तेमाल किए जा सकते हैं. यहां दिए गए उदाहरण में इसकी जानकारी दी गई है:

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

यहां दिए गए उदाहरण में, नई सूचना के लिए दुनिया भर में मान्य यूनीक आईडी दिया गया है, ताकि खारिज की गई सूचनाएं सिंक हो सकें:

val notification = NotificationCompat.Builder(context, channelId)
    // ... set other fields ...
    .extend(
        NotificationCompat.WearableExtender()
            .setDismissalId("abc123")
    )
    .build()

सिर्फ़ स्थानीय सूचनाएँ

डुप्लीकेट सूचनाएं पाने से बचने के लिए, setLocalOnly() का इस्तेमाल करके, सूचनाओं को फ़ोन पर ही पाने की सुविधा चालू की जा सकती है.

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

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

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

जब सूचनाएं ब्रिज नहीं की जाती हैं

सिस्टम, इस तरह की सूचनाओं को ब्रिज नहीं करता:

ब्रिज की गई सूचनाओं को लागू करने के दौरान ध्यान देने वाली बातें

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

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

डिज़ाइन से जुड़ी बातें

Wear OS की सूचनाओं के लिए, डिज़ाइन से जुड़े दिशा-निर्देश अलग होते हैं. ज़्यादा जानकारी के लिए, Wear OS के डिज़ाइन से जुड़े दिशा-निर्देश देखें.