लाइव अपडेट की सूचनाएं बनाना

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

पहली इमेज. लाइव अपडेट की सूचना का उदाहरण.

प्रमोशन वाले सूचना कार्ड इस तरह दिखते हैं:

  • डिफ़ॉल्ट रूप से बड़ा किया गया
  • छोटा न किया जा सकने वाला

लाइव अपडेट के तौर पर दिखने के लिए, आपकी सूचना को ये ज़रूरी शर्तें पूरी करनी होंगी:

  • यह स्टैंडर्ड स्टाइल, BigTextStyle, CallStyle, ProgressStyle या MetricStyle होना चाहिए.
  • Android मेनिफ़ेस्ट में, रनटाइम के दौरान न मांगी जाने वाली इस अनुमति का अनुरोध करना ज़रूरी है android.permission.POST_PROMOTED_NOTIFICATIONS.
  • प्रमोशन का अनुरोध करने के लिए, EXTRA_REQUEST_PROMOTED_ONGOING या NotificationCompat.Builder#setRequestPromotedOngoing का इस्तेमाल करना ज़रूरी है.
  • ongoing होना चाहिए (FLAG_ONGOING_EVENT सेट करें).
  • contentTitle सेट होना चाहिए.
  • कोई भी customContentView सेट नहीं होना चाहिए (कोई RemoteViews नहीं).
  • यह setGroupSummary का इस्तेमाल करके, किसी ग्रुप की खास जानकारी नहीं होनी चाहिए.
  • setColorized को TRUE पर सेट नहीं किया जाना चाहिए.
  • सूचना चैनल में IMPORTANCE_MIN नहीं होना चाहिए.

प्रमोशन की विशेषताएं

यहां दिए गए एपीआई की मदद से, यह तय किया जा सकता है कि सिस्टम आपकी सूचना को प्रमोट करेगा या नहीं:

  • Notification.FLAG_PROMOTED_ONGOING से पता चलता है कि सूचना का प्रमोशन किया गया है या नहीं.
  • Notification.hasPromotableCharacteristics() पुष्टि करता है कि सिस्टम, सूचना को प्रमोट कर सकता है या नहीं. इस तरीके में यह नहीं देखा जाता कि उपयोगकर्ता ने सेटिंग में जाकर, ऐप्लिकेशन के लिए लाइव अपडेट की सुविधा बंद की है या नहीं.
  • NotificationManager.canPostPromotedNotifications() यह जांच करता है कि आपका ऐप्लिकेशन, प्रमोशन वाली सूचना पोस्ट कर सकता है या नहीं. उदाहरण के लिए, उपयोगकर्ता ने सेटिंग में इसे चालू किया है या बंद किया है.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS इंटेंट ऐक्शन है. इसकी मदद से, ऐप्लिकेशन उपयोगकर्ताओं को सेटिंग पर भेज सकते हैं, ताकि वे इस सुविधा को चालू कर सकें.

इस्तेमाल करने की ज़रूरी शर्तें

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

दूसरी इमेज. होम और लॉक स्क्रीन पर लाइव अपडेट के तौर पर और चिप के तौर पर.

जारी है

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

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

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

उपयोगकर्ता की ओर से शुरू किया गया

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

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

समय के हिसाब से ज़रूरी

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

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

उपयोगकर्ता अनुभव (यूएक्स) से जुड़े सबसे सही तरीके

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

प्रोग्रेस बार पर कस्टम ट्रैकर
तीसरी इमेज. ट्रैकर का कस्टम आइकॉन.

अगर ईटीए का हिसाब लगाया जा रहा है या वह अब तक उपलब्ध नहीं है, तो खाली जगह न दिखाएं. सिस्टम काम कर रहा है, यह दिखाने के लिए "सोच रहा हूँ..." या "रास्ता बदल रहा हूँ..." जैसा ऐक्टिव प्लेसहोल्डर टेक्स्ट दिखाएँ. जैसा कि उदाहरण में दिखाया गया है.

सोचने की प्रोसेस दिखाने के लिए, खाली न होने वाली स्थिति
चौथी इमेज. लाइव अपडेट के लिए, खाली न होने वाली स्थिति.

स्टेटस चिप

स्टेटस चिप की मदद से, उपयोगकर्ता लाइव अपडेट पर नज़र रख सकते हैं. ऐसा तब होता है, जब सूचना नहीं दिख रही हो. प्रोग्रेस दिखाने वाली सूचना के बारे में अहम जानकारी देने के लिए, setShortCriticalText या setWhen का इस्तेमाल करें.

आइकॉन के साथ स्टेटस चिप
पांचवीं इमेज. अनिश्चित स्थिति में छोटा आइकॉन, Notification.Builder#setSmallIcon दिखता है.
समय के साथ स्टेटस चिप
छठी इमेज. समय को सटीक तरीके से दिखाने के लिए, Notification.Builder#setShortCriticalText का इस्तेमाल करें.
जानकारी वाला स्टेटस चिप
सातवीं इमेज. अहम जानकारी देने के लिए, Notification.Builder#setShortCriticalText का इस्तेमाल करें.

समय

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

  • जब समय कम से कम दो मिनट बाद का हो: अगर मौजूदा समय सुबह 10:05 बजे है और समय सुबह 10:10 बजे पर सेट है, तो चिप में 5 मिनट दिखता है.
  • जब समय बीत चुका हो: टेक्स्ट नहीं दिखाया जाता.
  • समय दिखाने के लिए Chronometer का इस्तेमाल करने पर, चिप में टाइमर दिखाया जा सकता है. setUsesChronometer और setChronometerCountdown देखें. जब तक क्रोनोमीटर टाइमर की वैल्यू पॉज़िटिव रहती है, तब तक वह चिप में दिखता है.
  • अगर आपको सूचना में समय नहीं दिखाना है, तो setShowWhen को FALSE पर सेट करें.

स्टेटस चिप कैसा दिखता है

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

  • अगर सात से कम वर्ण हैं, तो पूरा टेक्स्ट दिखाएं.
  • अगर आधे से कम टेक्स्ट दिखेगा, तो सिर्फ़ आइकॉन दिखाएं.
  • अगर आधे से ज़्यादा टेक्स्ट दिखेगा, तो ज़्यादा से ज़्यादा टेक्स्ट दिखाएं.

Wear OS

लाइव अपडेट की सुविधा, कनेक्ट किए गए कुछ Wear OS डिवाइसों पर उपलब्ध है. ब्रिजिंग के इस व्यवहार के बारे में जानने के लिए, Wear OS पर लाइव अपडेट की गाइड देखें. इसमें Wear OS के लिए, स्थानीय लाइव अपडेट बनाने का तरीका भी बताया गया है.

Dismissal

उपयोगकर्ता, नोटिफ़िकेशन शेड में नोटिफ़िकेशन दिखने की सेटिंग को कंट्रोल कर सकते हैं. अनचाहे लाइव अपडेट पोस्ट करने पर, उपयोगकर्ता किसी ऐप्लिकेशन को पोस्ट करने की अनुमति वापस ले सकते हैं.

उपयोगकर्ताओं को लाइव अपडेट की सुविधा पूरी तरह से बंद करने से रोकने के लिए, ऐसे अपडेट पोस्ट करने से बचें जिन्हें उपयोगकर्ता खारिज कर सकते हैं. उपयोगकर्ता ने जिन लाइव अपडेट को खारिज कर दिया है उन्हें फिर से पोस्ट न करें. खारिज किए गए अपडेट का पता लगाने के लिए, setDeleteIntent का इस्तेमाल करें.

इन एपीआई को आज़माने के लिए, सैंपल के तौर पर मिला ऐप्लिकेशन देखें.

अक्सर पूछे जाने वाले सवाल

सवाल: प्रोग्रेस बार के आखिर में मौजूद सफ़ेद बिंदु क्या है?

प्रोग्रेस ऐक्सेसिबिलिटी विज़ुअलाइज़ेशन इंडिकेटर का खत्म होना
आठवीं इमेज. यात्रा के आखिर में सुलभता सुविधाओं के बारे में जानकारी

जवाब: प्रोग्रेस बार के आखिर में मौजूद सफ़ेद बिंदु, प्रोग्रेस बार के खत्म होने की जानकारी देता है.

सवाल: लाइव अपडेट के लिए, पसंद के मुताबिक सूचनाएं पाने की सुविधा क्यों उपलब्ध नहीं है?

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