सूचना के रनटाइम की अनुमति

Android 13 (एपीआई लेवल 33) और उसके बाद वाले वर्शन, Android 13 (एपीआई लेवल 33) और उसके बाद वाले वर्शन के साथ काम करते हैं भेजने के लिए रनटाइम की अनुमति बिना छूट वाली सूचनाएं (इनमें फ़ोरग्राउंड सेवाएं (एफ़जीएस) शामिल हैं) से जुड़ी सूचनाएं Google Analytics 4 प्रॉपर्टी को ऐक्सेस करने के लिए: 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 या इससे कम रिज़ॉल्यूशन वाले डिवाइस का इस्तेमाल करता है.

अगर उपयोगकर्ता ने ऐसे डिवाइस पर आपके ऐप्लिकेशन के लिए सूचनाएं बंद कर दी हैं जो 12L या उससे कम, यह डिनायल बना रहता है, जब डिवाइस Android 13 या इसके बाद वाले वर्शन पर अपग्रेड करना होगा.

मुक्तियाँ

इस सेक्शन में ऐसी सूचनाओं और ऐप्लिकेशन का सेट शामिल है जिन्हें सूचना की अनुमति के व्यवहार में बदलाव. Android 13 (एपीआई लेवल 33) या इसके बाद वाले वर्शन पर, अगर उपयोगकर्ता सूचना की अनुमति को अस्वीकार करता है, तब भी उन्हें संबंधित नोटिस में हो रही फ़ोरग्राउंड सेवाओं के लिए इस्तेमाल किया जा सके. टास्क मैनेजर लेकिन वे मुझे सूचना पैनल.

मीडिया सेशन

इससे जुड़ी सूचनाएं मीडिया सेशन इस व्यवहार परिवर्तन से मुक्त करें.

खुद से फ़ोन कॉल मैनेज करने के लिए कॉन्फ़िगर किए गए ऐप्लिकेशन

अगर आपका ऐप्लिकेशन खुद को फ़ोन कॉल मैनेज करने के लिए कॉन्फ़िगर करता है, तो ऐप्लिकेशन को भेजने के लिए, POST_NOTIFICATIONS की अनुमति की ज़रूरत नहीं है ऐसी सूचनाएं जो Notification.CallStyle सूचना शैली.

सिस्टम के हिसाब से आपके ऐप्लिकेशन ने खुद को फ़ोन मैनेज करने के लिए कॉन्फ़िगर किया है कॉल करता है, अगर वह इनमें से हर एक काम करता है:

  1. MANAGE_OWN_CALLS अनुमति.
  2. लागू करता है ConnectionService इंटरफ़ेस पर कॉपी करने की सुविधा मिलती है.
  3. कॉल करके डिवाइस की टेलिकॉम कंपनी के साथ रजिस्टर करता है 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 नतीजे दिखाता है. इससे आपके ऐप्लिकेशन को बीच वाली स्क्रीन दिखाने की ज़रूरत नहीं पड़ती है जिसमें "सूचना पाएं!" टाइटल टेक्स्ट हो.

इसके अलावा, उपयोगकर्ताओं को अपने ऐप्लिकेशन के बारे में अच्छे से जान लें. उदाहरण के लिए, आपको जब उपयोगकर्ता आपका ऐप्लिकेशन लॉन्च करता है, तो तीसरी या चौथी बार.

साइन इन करने के बाद, उपयोगकर्ता को
   यात्रा अपडेट की सूचना पाने के लिए आमंत्रण. उपयोगकर्ता के दबाने के बाद
   &#39;मैं हूं&#39; बटन, ऐप्लिकेशन नई अनुमति का अनुरोध करता है, जिससे सिस्टम खराब होता है
   दिखने के लिए डायलॉग बॉक्स
पहली इमेज. अनुरोध करने के लिए, उपयोगकर्ता की ओर से सुझाया गया वर्कफ़्लो सूचना की अनुमति. बीच वाली स्क्रीन सिर्फ़ तब ज़रूरी होती है, जब shouldShowRequestPermissionRationale(), true दिखाता है.

ज़्यादा जानकारी के लिए अनुमति पाने का अनुरोध करें

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

इस अवसर का इस्तेमाल अपने इरादों के बारे में साफ़ तौर पर बताने के लिए करें. इससे उपयोगकर्ता आपके ऐप्लिकेशन पर आपके ऐप्लिकेशन को सूचना की अनुमति दे सकते हैं.

यह देखना कि आपका ऐप्लिकेशन सूचनाएं भेज सकता है या नहीं

इससे पहले कि आपका ऐप्लिकेशन सूचना भेजे, पुष्टि करें कि उपयोगकर्ता ने इसे चालू किया है या नहीं सूचनाएं पाने की सुविधा चालू करें. ऐसा करने के लिए, कॉल करें areNotificationsEnabled().

अनुमति का इस्तेमाल ज़िम्मेदारी से करना

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