Android 13 की सूचनाओं के लिए, ऑप्ट-इन मॉडल का इस्तेमाल किया जाता है. Android के पिछले वर्शन से एक बदलाव हुआ है, जो ऑप्ट-आउट मॉडल का इस्तेमाल करते हैं. तय सीमा में Android 13 वाले वर्शन के लिए, सभी ऐप्लिकेशन को पहले से ही उपयोगकर्ताओं से अनुमति लेनी होगी सूचना भेजने के लिए. यह मॉडल, ऐप्लिकेशन पर मिलने वाली सूचनाओं को कम करने में मदद करता है रुकावटों, जानकारी के ओवरलोड को कम करता है, और लोगों को यह कंट्रोल करने में मदद करता है कि नोटिफ़िकेशन उनके लिए महत्वपूर्ण सामग्री के आधार पर दिखाई देते हैं. सहायता करने के लिए ऑप्ट-इन मॉडल का इस्तेमाल करने पर, OEM को सूचना और रनटाइम में बदलाव लागू करने होंगे अनुमति सिस्टम.
इस पेज पर बताया गया है कि इस बदलाव के लिए, OEM को क्या-क्या लागू करना चाहिए और कैसे लागू करने की पुष्टि की जा सकती है.
ऑप्ट-इन सूचनाओं के लिए बदलाव लागू करें
Android 13 और इसके बाद के वर्शन में, ऐप्लिकेशन को
सूचना भेजने के लिए,
android.permission.POST_NOTIFICATION
रनटाइम की अनुमति को चालू कर दें, ताकि वे सूचनाएं भेज पाएं.
Android 13 और उसके बाद के वर्शन में, वह सेटिंग जो तय करती है कि अगर कोई ऐप्लिकेशन उपयोगकर्ता को सूचनाएं भेज सकता है, तो वह अनुमति सिस्टम में सेव रहता है. Android 13 से पहले के वर्शन में, यह सेटिंग सूचना सिस्टम. इसलिए, OEM को सूचना से जुड़े मौजूदा डेटा को माइग्रेट करना होगा सूचना से यह पता चलता है कि किसी ऐप्लिकेशन को सूचनाएं भेजने की अनुमति है या नहीं सिस्टम को रनटाइम की अनुमति सिस्टम में जोड़ा जा सकता है. OEM को मौजूदा एपीआई का रखरखाव भी करना होगा जो ऐप्लिकेशन डेवलपर को वह डेटा उपलब्ध कराते हैं.
सूचना और अनुमति सिस्टम में किए जाने वाले बदलाव, उपयोगकर्ता की सूचना के व्यवहार के लिए ऑप्ट-इन मॉडल और जो लागू करने से जुड़े दिशा-निर्देश सेक्शन में दिए गए हैं.
ऑप्ट-इन करने के मॉडल में उपयोगकर्ता की सूचनाओं का व्यवहार
नीचे दी गई टेबल में अलग-अलग ऐप्लिकेशन के लिए, सूचना दिखाने का तरीका दिखाया गया है Android 13 वर्शन वाले डिवाइस पर मौजूद वर्शन:
Android 13 वर्शन वाले डिवाइस | Android 13 या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन | Android 13 से पुराने वर्शन को टारगेट करने वाले ऐप्लिकेशन |
---|---|---|
नया इंस्टॉल | सूचनाएं तब तक ब्लॉक रहेंगी, जब तक ऐप्लिकेशन से कोई सूचना नहीं मिलेगी.
ऐप्लिकेशन यह कंट्रोल कर सकते हैं कि अनुमति कब मांगी जाए. |
ओएस से प्रॉम्प्ट मिलने तक, सूचनाएं ब्लॉक रहेंगी.
ऐप्लिकेशन पहली बार इस्तेमाल करने पर अनुमति मांगी जाती है. |
मौजूदा ऐप्लिकेशन (अपग्रेड किया गया) | ऐप्लिकेशन से सूचना मिलने के बाद ही सूचनाएं भेजी जा सकती हैं.
कुछ समय के लिए अनुमति तब तक दी जाती है, जब तक ऐप्लिकेशन ज़रूरी शर्तें पूरी करने वाले पहले रन पर लागू नहीं करता. |
ओएस से सूचना मिलने तक सूचनाएं भेजी जा सकती हैं.
कुछ समय के लिए अनुमति तब तक दी जाती है, जब तक ऐप्लिकेशन पहली बार काम नहीं करता. |
लागू करने के लिए दिशा-निर्देश
रेफ़रंस के तौर पर इसे लागू करने के लिए, यहां जाएं: सूचना सेवा, अनुमति सेवा और नीति से जुड़ी सेवा. अपवादों को लागू करने के लिए डिफ़ॉल्ट अनुमति हैंडलर के लिए रनटाइम अनुमतियां.
लागू करने के दौरान, उपयोगकर्ता के लिए सूचना पाने के लिए इन दिशा-निर्देशों का पालन करें Android 13 या उससे पहले के वर्शन को टारगेट करने वाले ऐप्लिकेशन का व्यवहार:
- Android 13 वाले डिवाइस पर, नए इंस्टॉल किए गए ऐप्लिकेशन के लिए यह ज़रूरी है
उपयोगकर्ता की अनुमति के संकेत के बिना सूचना न भेजें.
- अगर ऐप्लिकेशन का टारगेट Android 13 है और बाद में, सूचनाएं तब तक ब्लॉक रहेंगी, जब तक ऐप्लिकेशन, कंट्रोल करती है कि उपयोगकर्ता की अनुमति कब लेनी है और कब लेनी है.
- अगर ऐप्लिकेशन इससे पहले के वर्शन को टारगेट करता है, तो Android 13 के लिए सूचनाएं इस समय तक ब्लॉक रहेंगी ओएस से प्रॉम्प्ट किया जाएगा. पहली बार ब्राउज़र इस्तेमाल करने पर, ओएस को अनुमति का प्रॉम्प्ट दिखाना होगा ऐप खोलें.
ऐसा कोई भी ऐप्लिकेशन जो, ओएस वर्शन में अपग्रेड करने से पहले डिवाइस में मौजूद था Android 13 या ऐसा कोई भी ऐप्लिकेशन जिसे बैकअप की मदद से वापस लाया गया था सूचना भेजने की अनुमति देनी होगी. हालांकि, सूचना भेजने के लिए ज़रूरी है कि उपयोगकर्ता पहली बार उस ऐप्लिकेशन से कोई गतिविधि लॉन्च करता है.
उन ऐप्लिकेशन के लिए जो Android 13 के SDK टूल को टारगेट करते हैं और अन्य, अगर उपयोगकर्ता ने इस ऐप्लिकेशन या
NotificationChannel
के लेवल पर, इस ऐप्लिकेशन को कुछ समय के लिए बंद करें की अनुमति नहीं है. ऐप्लिकेशन को लॉन्च करने से पहले, उसे उपयोगकर्ता से अनुमति लेनी होगी को सूचनाएं भेजना जारी रखने की अनुमति दी गई.अगर Android 13 को टारगेट करने वाला, अपग्रेड किया गया ऐप्लिकेशन फ़िलहाल, कुछ समय के लिए किए गए अपग्रेड के ज़रिए सूचना पाने की अनुमति है देता है और उपयोगकर्ता ने इसे कम से कम एक बार लॉन्च किया है, तो ऐप्लिकेशन को सूचना की अनुमति का अनुरोध मिलने से पहले, उसे फ़ोरग्राउंड में चलाने की अनुमति दें सेवाओं.
उन ऐप्लिकेशन के लिए जिनके टारगेट SDK टूल के वर्शन इससे पहले के हैं Android 13, इंटरसेप्ट ऐप्लिकेशन से कम से कम एक
NotificationChannel
बनाने के बाद, पहली गतिविधि को लॉन्च किया जाएगा का इस्तेमाल, अनुमति का प्रॉम्प्ट दिखाने के लिए किया जाता है. इसमें पूछा जाता है कि क्या लोग, खोलें.अगर कोई उपयोगकर्ता अपग्रेड करने वाले डिवाइस पर या किसी ऐप्लिकेशन के लिए, ऐप्लिकेशन या
NotificationChannel
लेवल बैकअप को डिवाइस पर वापस लाने के लिए, ऐप्लिकेशन लेवल की सेटिंगFLAG_PERMISSION_USER_SET
फ़्लैग के साथ अनुमति सिस्टम. अब नहीं उपयोगकर्ता को तब तक सूचना की अनुमति का प्रॉम्प्ट दिखना चाहिए, जब तक ऐप्लिकेशन खास तौर से इसके लिए कहता है.
बैक अप लेने और उसे वापस पाने की सुविधा, इन दोनों के बीच में होनी चाहिए: Android 13 वाला डिवाइस और ओएस के पुराने वर्शन का एक डिवाइस वर्शन है. Android 13 से जनरेट किया गया बैकअप डेटा तो डिवाइस को ओएस के पुराने वर्शन पर वापस लाना होगा. साथ ही, इससे पहले के वर्शन वाले डेटा का बैकअप लेना होगा Android 13 वाले डिवाइस पर ओएस वर्शन पहले जैसा होना चाहिए.
चल रहे मीडिया प्लेबैक से जुड़ी मीडिया सूचनाओं में छूट होनी चाहिए सूचना की अनुमति से हटाया जाता है.
सूचना और अनुमति सिस्टम में हुए बदलावों की पुष्टि करें
लागू होने की पुष्टि करने के लिए, नीचे दिए गए टेस्ट करें:
यूनिट टेस्ट जैसा कि
PreferencesHelperTest
में बताया गया है,NotificationManagerServiceTest
.कोई भी मैन्युअल टेस्ट जो अपग्रेड, बैक अप, और रिस्टोर की जांच करता है.
सीटीएस अनुमति और सूचना सिस्टम की ऐसी जांच जिससे सूचनाएं भेजी जाती हैं. इनमें से कुछ जांच cts/tests/tests/permission/ में मौजूद हैं, NotificationManagerTest.java, और cts/tests/tests/notificationlegacy/.