Wear OS पर सूचनाएं

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

स्मार्ट वॉच पर सूचनाएं दो तरीकों से दिख सकती हैं:

  1. कोई मोबाइल ऐप्लिकेशन सूचना बनाता है और सिस्टम उस सूचना को स्मार्टवॉच पर अपने-आप भेज देता है.
  2. स्मार्टवॉच पर काम करने वाला कोई ऐप्लिकेशन सूचना बनाता है.

दोनों ही मामलों में, सूचनाएं बनाने के लिए NotificationCompat.Builder क्लास का इस्तेमाल करें. बिल्डर क्लास की मदद से सूचनाएं बनाने पर, सिस्टम सूचनाओं को सही तरीके से दिखाने का ध्यान रखता है. उदाहरण के लिए, जब आपके मोबाइल ऐप्लिकेशन से कोई सूचना भेजी जाती है, तो हर सूचना सूचना स्ट्रीम में कार्ड के तौर पर दिखती है.

सूचनाएं कैसे दिखती हैं, यह जानने के लिए नीचे दिया गया उदाहरण देखें. notification-cards

पहली इमेज. फ़ोन और स्मार्टवॉच पर एक ही सूचना दिख रही है.

सबसे अच्छे नतीजे पाने के लिए, इनमें से किसी एक NotificationCompat.Style सबक्लास का इस्तेमाल करें.

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

पहने जाने वाले डिवाइसों के लिए सुझाई गई सूचनाएं

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

NotificationCompat.Style किसी भी सबक्लास का इस्तेमाल करके, मोबाइल पर बड़ी की जा सकने वाली सूचना बनाई जा सकती है ठीक उसी तरह जैसे डेस्कटॉप पर बनाई जाती है. उदाहरण के लिए, NotificationCompat.MessagingStyle का इस्तेमाल करके बनाई गई स्टैंडर्ड सूचना इस तरह दिखती है: expandable-notification

दूसरी इमेज. Wear OS पर MessagingStyle सूचना का उदाहरण.

इस इमेज में, सूचना के बड़े किए गए वर्शन में सबसे नीचे कई कार्रवाइयां दिख रही हैं.

NotificationCompat.BigPictureStyle, NotificationCompat.BigTextStyle, NotificationCompat.InboxStyle, और NotificationCompat.MessagingStyle के उदाहरणों के लिए, GitHub पर सूचना का सैंपल देखें.

सलाह: अगर आपकी सूचनाओं में "जवाब दें" कार्रवाई शामिल है, जैसे कि मैसेज सेवा के लिए, तो सूचना के काम करने के तरीके को बेहतर बनाया जा सकता है. उदाहरण के लिए, setChoices() का इस्तेमाल करके, स्मार्टवॉच पर बोलकर दिए जाने वाले जवाबों की सुविधा चालू की जा सकती है. इसके अलावा, पहले से तय किए गए टेक्स्ट जवाबों की सुविधा भी चालू की जा सकती है. ज़्यादा जानकारी के लिए, पढ़ें जवाब देने का बटन जोड़ना.

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

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

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

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

सूचना में, स्मार्टवॉच के हिसाब से सुविधाएं जोड़ना

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

  1. WearableExtender का एक इंस्टेंस बनाएं. साथ ही, सूचना के लिए स्मार्टवॉच के हिसाब से विकल्प सेट करें.
  2. इस गाइड में पहले बताए गए तरीके के मुताबिक, अपनी सूचना के लिए अपनी पसंद की प्रॉपर्टी सेट करके, NotificationCompat.Builder का एक इंस्टेंस बनाएं.
  3. सूचना पर extend() को कॉल करें और WearableExtender को पास करें. इससे, सूचना पर स्मार्टवॉच के विकल्प लागू हो जाते हैं.
  4. सूचना बनाने के लिए, build() को कॉल करें.

ध्यान दें: अगर फ़्रेमवर्क के NotificationManager का इस्तेमाल किया जाता है, तो NotificationCompat.WearableExtender की कुछ सुविधाएं काम नहीं करती हैं. इसलिए, NotificationCompat का इस्तेमाल करना न भूलें.

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

सिर्फ़ स्मार्टवॉच पर की जाने वाली कार्रवाइयां तय करना

अगर आपको स्मार्टवॉच और फ़ोन पर अलग-अलग कार्रवाइयां करनी हैं, तो WearableExtender.addAction() का इस्तेमाल करें. इस तरीके से कोई कार्रवाई जोड़ने के बाद, पहने जाने वाले डिवाइस पर, NotificationCompat.Builder.addAction() से जोड़ी गई कोई भी अन्य कार्रवाई नहीं दिखती. WearableExtender.addAction() के साथ जोड़ी गई कार्रवाइयां, सिर्फ़ स्मार्टवॉच पर दिखती हैं, फ़ोन पर नहीं.

पहने जाने वाले डिवाइस से फ़ोन ऐप्लिकेशन लॉन्च करना

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

  1. ConfirmationActivity को एक्सटेंड करने वाला नया Activity बनाएं.
  2. फ़ोन ऐप्लिकेशन लॉन्च करने के लिए, नए Activity में RemoteActivityHelper का इस्तेमाल करें.
  3. सूचना से Activity लॉन्च करने के लिए Intent बनाते समय, EXTRA_ANIMATION_TYPE को OPEN_ON_PHONE_ANIMATION पर सेट करें.
इस तरीके से, उपयोगकर्ता को अपने फ़ोन पर इंटरैक्ट करने के लिए निर्देश मिलते हैं. साथ ही, बैकग्राउंड प्रोसेस लॉन्च करने के लिए, प्लैटफ़ॉर्म की ज़रूरी शर्तों का पालन किया जाता है.

ध्यान दें: सूचना ऐक्शन के टारगेट के तौर पर, BroadcastReceiver का इस्तेमाल नहीं किया जा सकता.