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

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

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

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

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

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

  • यह स्टैंडर्ड स्टाइल, BigTextStyle, CallStyle या ProgressStyle में से किसी एक में होना चाहिए.
  • Android मेनिफ़ेस्ट फ़ाइल में, रनटाइम के दौरान नहीं मांगी जाने वाली इस अनुमति के लिए अनुरोध करना ज़रूरी है android.permission.POST_PROMOTED_NOTIFICATIONS.
  • EXTRA_REQUEST_PROMOTED_ONGOING या NotificationCompat.Builder#setRequestPromotedOngoing का इस्तेमाल करके प्रमोशन का अनुरोध करना ज़रूरी है.
  • इसे ongoing पर सेट किया जाना चाहिए (FLAG_ONGOING_EVENT सेट करें).
  • इसमें contentTitle सेट होना चाहिए.
  • इसमें कोई customContentView सेट नहीं होना चाहिए (कोई RemoteViews नहीं).
  • यह setGroupSummary का इस्तेमाल करने वाले ग्रुप की खास जानकारी नहीं होनी चाहिए.
  • TRUE के लिए setColorized नहीं होना चाहिए.
  • सूचना के चैनल में 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 मिनट लिखा होगा.
  • अगर समय बीत चुका है, तो टेक्स्ट नहीं दिखता.
  • जब समय के लिए क्रोनोमीटर का इस्तेमाल किया जाता है, तब चिप में टाइमर दिखाया जा सकता है. setUsesChronometer और setChronometerCountdown देखें. क्रोनोमीटर टाइमर को चिप में तब तक दिखाया जाता है, जब तक वह पॉज़िटिव होता है.
  • आपको सूचना पर समय नहीं दिखाना है: FALSE के लिए setShowWhen का इस्तेमाल करें.

स्टेटस चिप दिखने का तरीका

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

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

Dismissal

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

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

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