Android 13 (एपीआई लेवल 33) और उसके बाद के वर्शन में, ऐप्लिकेशन से जिन सूचनाओं के लिए छूट नहीं है (इनमें फ़ोरग्राउंड सेवाएं (एफ़जीएस) भी शामिल हैं) उन्हें भेजने के लिए, रनटाइम की अनुमति की सुविधा काम करती है:
POST_NOTIFICATIONS
.
इस बदलाव से, उपयोगकर्ताओं को उन सूचनाओं पर फ़ोकस करने में मदद मिलती है जो उनके लिए सबसे ज़्यादा ज़रूरी हैं
उन्हें.
हमारा सुझाव है कि आप जल्द से जल्द Android 13 या उसके बाद के वर्शन को टारगेट करें के अतिरिक्त नियंत्रण और लचीलेपन का फ़ायदा ले सकें. सुविधा. अगर 12L (एपीआई लेवल 32) या इससे पहले के लेवल को टारगेट करना जारी रखा जाता है, तो आपके ऐप्लिकेशन के संदर्भ में अनुमति का अनुरोध करने पर) सुविधा.
अनुमति का एलान करना
अपने ऐप्लिकेशन से नई सूचनाओं की अनुमति पाने के लिए, ऐप्लिकेशन को इस तरह अपडेट करें: टारगेट करने का विकल्प होता है. साथ ही, यह प्रोसेस रनटाइम की अन्य अनुमतियों के लिए अनुरोध करना. नीचे दिए गए सेक्शन में दिए गए हैं.
वह अनुमति जो आपको चाहिए अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में एलान करना निम्न कोड स्निपेट में दिखाई देता है:
<manifest ...> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <application ...> ... </application> </manifest>
ऐप्लिकेशन की सुविधाएं, अनुमतियों के डायलॉग में उपयोगकर्ता की पसंद पर निर्भर करती हैं
इस डायलॉग में उपयोगकर्ताओं के पास ये कार्रवाइयां कर सकें:
- अनुमति दें को चुनें
- अनुमति न दें को चुनें
- किसी भी बटन को दबाए बिना, डायलॉग से दूर स्वाइप करें
नीचे दिए गए सेक्शन में बताया गया है कि उपयोगकर्ता की कार्रवाई के आधार पर, आपका ऐप्लिकेशन कैसे काम करता है.
उपयोगकर्ता "अनुमति दें" चुनता है
अगर उपयोगकर्ता अनुमति दें विकल्प चुनता है, तो आपका ऐप्लिकेशन ये काम कर सकता है:
- सूचनाएं भेजना. सभी सूचना के चैनल अनुमति है.
- फ़ोरग्राउंड से जुड़ी सूचनाएं पोस्ट करें सेवाएं. ये सूचनाएं यहां दिखती हैं सूचना दिखाने वाला पैनल.
उपयोगकर्ता, "अनुमति न दें" को चुनता है
अगर उपयोगकर्ता अनुमति न दें विकल्प चुनता है, तो आपका ऐप्लिकेशन Google Play पर सूचनाएं सिर्फ़ तब तक भेजी जा सकती हैं, जब तक इन्हें छूट की ज़रूरी शर्तें पूरी न करनी पड़े. सभी कुछ खास सूचनाओं को छोड़कर, अन्य सूचना चैनल ब्लॉक किए गए हैं भूमिकाएं. यह उसी तरह का व्यवहार है जो तब होता है, जब उपयोगकर्ता आपके ऐप्लिकेशन के लिए, सिस्टम सेटिंग में जाकर मैन्युअल तरीके से सभी सूचनाएं बंद कर देता है.
चेतावनी: अगर आपका ऐप्लिकेशन 12L या उससे पहले के वर्शन को टारगेट करता है और उपयोगकर्ता अनुमति न दें पर सिर्फ़ एक बार टैप करता है, तो उसे फिर से तब तक अनुरोध नहीं किया जाएगा, जब तक कि इनमें से कोई एक काम न हो जाए:
- उपयोगकर्ता आपके ऐप्लिकेशन को अनइंस्टॉल करके फिर से इंस्टॉल करता है.
- आपने अपने ऐप्लिकेशन को Android 13 या उसके बाद के वर्शन को टारगेट करने के लिए अपडेट किया हो.
उपयोगकर्ता, डायलॉग बॉक्स से स्वाइप करके बाहर निकलता है
अगर उपयोगकर्ता डायलॉग से दूर स्वाइप करता है—इसका मतलब है कि वह दोनों में से किसी एक को नहीं चुनता है allow या अनुमति न दें—सूचना की अनुमति की स्थिति बदलें.
इंस्टॉल किए गए नए ऐप्लिकेशन पर इफ़ेक्ट
अगर कोई उपयोगकर्ता, Android 13 वाले डिवाइस पर आपका ऐप्लिकेशन इंस्टॉल करता है तो आपके ऐप्लिकेशन की सूचनाएं डिफ़ॉल्ट रूप से बंद रहती हैं. आपके ऐप्लिकेशन को सूचनाएं भेजने के लिए, तब तक इंतज़ार करना होगा, जब तक आपने नई अनुमति का अनुरोध नहीं किया और उपयोगकर्ता ने आपके ऐप्लिकेशन को वह अनुमति नहीं दी.
अनुमतियों का डायलॉग बॉक्स कब दिखेगा, यह आपके ऐप्लिकेशन के टारगेट किए गए SDK टूल के वर्शन पर निर्भर करता है:
- अगर आपका ऐप्लिकेशन, Android 13 या इसके बाद वाले वर्शन को टारगेट करता है, तो: इस पर कंट्रोल मिलेगा कि अनुमति वाला डायलॉग कब दिखे. इस मौके का इस्तेमाल करके, उपयोगकर्ताओं को बताएं कि ऐप्लिकेशन को इस अनुमति की ज़रूरत क्यों है. साथ ही, उन्हें अनुमति देने के लिए बढ़ावा दें.
- अगर आपका ऐप्लिकेशन 12L (एपीआई लेवल 32) या उससे पहले के लेवल को टारगेट करता है, तो सिस्टम, जब आपका ऐप्लिकेशन आपके बाद पहली बार कोई गतिविधि शुरू करेगा, तो अनुमति वाला डायलॉग बॉक्स को सूचना का चैनल बनाना होगा या तब ऐप कोई गतिविधि शुरू करता है और फिर अपना पहला सूचना चैनल बनाता है. आम तौर पर, यह ऐप्लिकेशन के स्टार्टअप पर होता है.
मौजूदा ऐप्लिकेशन के अपडेट पर असर
सूचना की अनुमति से जुड़ी समस्याओं को कम करने के लिए, जब उपयोगकर्ता अपने डिवाइस को Android 13 या उसके बाद के वर्शन पर अपग्रेड करता है, तो सिस्टम ज़रूरी शर्तें पूरी करने वाले सभी ऐप्लिकेशन को अनुमति अपने-आप दे देता है. दूसरे शब्दों में, ये ऐप्लिकेशन उपयोगकर्ताओं को सूचनाएं भेजना जारी रख सकते हैं. साथ ही, उपयोगकर्ताओं को रनटाइम की अनुमति का अनुरोध नहीं दिखता.
पहले से दी जाने वाली अनुमति के लिए ज़रूरी शर्तें
ऐप्लिकेशन को अपने-आप पहले से मंज़ूरी मिलने की ज़रूरी शर्तें पूरी करने के लिए, यह ज़रूरी है कि मौजूदा सूचना चैनल और उसकी सूचनाओं को साफ़ तौर पर बंद न किया गया हो उपयोगकर्ता के लिए 12L या इससे कम रिज़ॉल्यूशन वाले डिवाइस का इस्तेमाल करता है.
अगर उपयोगकर्ता ने Android 12L या उससे पहले के वर्शन वाले डिवाइस पर, आपके ऐप्लिकेशन के लिए सूचनाएं पाने की सुविधा बंद की है, तो डिवाइस को Android 13 या उसके बाद के वर्शन पर अपग्रेड करने पर भी यह सेटिंग लागू रहेगी.
छूट
इस सेक्शन में सूचनाओं और ऐप्लिकेशन का एक सेट शामिल है. इन पर, सूचना की अनुमति के व्यवहार में हुए बदलाव का असर नहीं पड़ेगा. Android 13 (एपीआई लेवल 33) या इसके बाद वाले वर्शन पर, अगर उपयोगकर्ता सूचना की अनुमति को अस्वीकार करता है, तब भी उन्हें संबंधित नोटिस में फ़ोरग्राउंड सेवाओं के लिए इस्तेमाल किया जा सकता है. टास्क मैनेजर लेकिन वे मुझे सूचना पैनल.
मीडिया सेशन
मीडिया सेशन से जुड़ी सूचनाओं पर, इस बदलाव का असर नहीं पड़ेगा.
ऐसे ऐप्लिकेशन जिन्हें फ़ोन कॉल को खुद मैनेज करने के लिए कॉन्फ़िगर किया गया है
अगर आपका ऐप्लिकेशन, फ़ोन कॉल को खुद मैनेज करने के लिए कॉन्फ़िगर किया गया है, तो आपको POST_NOTIFICATIONS
अनुमति की ज़रूरत नहीं है. इससे आपके ऐप्लिकेशन को Notification.CallStyle
सूचना स्टाइल का इस्तेमाल करके सूचनाएं भेजने में मदद मिलेगी.
सिस्टम के हिसाब से आपके ऐप्लिकेशन ने खुद को फ़ोन मैनेज करने के लिए कॉन्फ़िगर किया है कॉल करता है, अगर वह इनमें से हर एक काम करता है:
-
MANAGE_OWN_CALLS
अनुमति. ConnectionService
इंटरफ़ेस को लागू करता है.registerPhoneAccount()
को कॉल करके, डिवाइस की टेलीकॉम सेवा देने वाली कंपनी के साथ रजिस्टर करता है.
अपने ऐप्लिकेशन का परीक्षण करें
यह पता लगाया जा सकता है कि Android 13 या उसके बाद के वर्शन वाले डिवाइस पर, सूचना की अनुमति का इस्तेमाल करने पर आपके ऐप्लिकेशन पर क्या असर पड़ता है. कॉन्टेंट बनाने फ़ॉलो किया जा रहा है Android डीबग ब्रिज (ADB) निर्देशों के सेट उपयोगकर्ता की पसंद और डिवाइस अपग्रेड के सबसे सामान्य क्रम को सिम्युलेट किया जा सकता है अपने टेस्ट डिवाइस को रीसेट किए बिना:
ऐप्लिकेशन को हाल ही में, Android 13 या इसके बाद के वर्शन पर चलने वाले डिवाइस पर इंस्टॉल किया गया हो:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
उपयोगकर्ता ने सूचनाएं चालू रखी हैं और ऐप्लिकेशन को 12L या इससे पहले के वर्शन पर इंस्टॉल किया है. इसके बाद, डिवाइस को Android 13 या इसके बाद के वर्शन पर अपग्रेड किया जाता है, तो:
adb shell pm grant PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
जब ऐप्लिकेशन किसी Android डिवाइस पर इंस्टॉल किया गया हो, तो उपयोगकर्ता मैन्युअल रूप से सूचनाओं को बंद कर देता है 12L या उससे कम रिज़ॉल्यूशन वाले डिवाइस के बाद, Android 13 या इसके बाद वाले वर्शन में अपग्रेड करने होंगे:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
सबसे सही तरीके
इस सेक्शन में उन तरीकों के बारे में बताया गया है जिनसे नई सूचनाओं का इस्तेमाल किया जा सकता है अनुमति को सबसे अच्छे तरीके से मैनेज करता है.
अपने ऐप्लिकेशन का टारगेट SDK वर्शन अपडेट करना
अनुमति वाले डायलॉग के दिखने पर, अपने ऐप्लिकेशन को ज़्यादा सुविधाएं देने के लिए, अपना ऐप्लिकेशन अपडेट करें, ताकि यह Android 13 या इसके बाद वाले वर्शन को टारगेट करे.
सूचना की अनुमति का प्रॉम्प्ट दिखाने का इंतज़ार करें
उपयोगकर्ताओं से कोई अनुमति देने का अनुरोध करने से पहले, उन्हें इस बारे में पूरी जानकारी दें को कैसे ट्रैक करें.
नए उपयोगकर्ता शायद इस ऐप्लिकेशन को एक्सप्लोर करना चाहें और उन्हें इसके बारे में खुद जानना चाहें हर एक सूचना के अनुरोध का फ़ायदा मिल सकता है. उपयोगकर्ता की कार्रवाई से, अनुमतियों का अनुरोध ट्रिगर किया जा सकता है. यहां दी गई सूची में, सूचना की अनुमति का अनुरोध दिखाने के लिए सही समय के कई उदाहरण दिए गए हैं:
- उपयोगकर्ता "चेतावनी वाली घंटी" पर टैप करता है बटन.
- उपयोगकर्ता किसी व्यक्ति के सोशल मीडिया खाते को फ़ॉलो करने का विकल्प चुनता है.
- उपयोगकर्ता, खाने की डिलीवरी के लिए ऑर्डर सबमिट करता है.
पहली इमेज में, सूचना का अनुरोध करने के लिए सुझाया गया वर्कफ़्लो दिखाया गया है
अनुमति. जब तक shouldShowRequestPermissionRationale()
true
नहीं दिखाता, तब तक आपके ऐप्लिकेशन को बीच की स्क्रीन नहीं दिखानी होगी. यह स्क्रीन वह होती है जिस पर "सूचनाएं पाएं!" टाइटल टेक्स्ट होता है.
इसके अलावा, उपयोगकर्ताओं को अपने ऐप्लिकेशन के बारे में अच्छे से जान लें. उदाहरण के लिए, आपको जब उपयोगकर्ता आपका ऐप्लिकेशन लॉन्च करता है, तो तीसरी या चौथी बार.
ज़्यादा जानकारी के लिए अनुमति पाने का अनुरोध करें
अपने ऐप्लिकेशन में सूचना की अनुमतियों का अनुरोध करने पर, सही तरीके से ऐसा करें इससे साफ़ तौर पर पता चल सकेगा कि सूचनाओं का इस्तेमाल किस काम के लिए किया जाता है और उपयोगकर्ता को इसे क्यों चुनना चाहिए. उदाहरण के लिए, किसी ईमेल ऐप्लिकेशन में ये विकल्प शामिल हो सकते हैं हर नए ईमेल के लिए या केवल उन ईमेल के लिए नोटिफ़िकेशन भेजें जहां उपयोगकर्ता सिर्फ़ पाने वाला.
इस अवसर का इस्तेमाल अपने इरादों के बारे में साफ़ तौर पर बताने के लिए करें. इससे उपयोगकर्ता आपके ऐप्लिकेशन पर आपके ऐप्लिकेशन को सूचना की अनुमति दे सकते हैं.
यह देखना कि आपका ऐप्लिकेशन सूचनाएं भेज सकता है या नहीं
इससे पहले कि आपका ऐप्लिकेशन सूचना भेजे, पुष्टि करें कि उपयोगकर्ता ने इसे चालू किया है या नहीं
सूचनाएं पाने की सुविधा चालू करें. ऐसा करने के लिए, कॉल करें
areNotificationsEnabled()
.
अनुमति का इस्तेमाल ज़िम्मेदारी से करना
सूचनाएं भेजने की अनुमति मिलने के बाद, इस अनुमति का इस्तेमाल करना न भूलें पूरी ज़िम्मेदारी के साथ. उपयोगकर्ता यह देख सकते हैं कि आपका ऐप्लिकेशन हर दिन कितने नोटिफ़िकेशन भेजता है भेजता और वे इस अनुमति को रद्द कर सकते हैं शामिल कर सकते हैं.