व्यवहार में बदलाव: Android 13 या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन

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

ऐप्लिकेशन के व्यवहार में होने वाले उन बदलावों की सूची देखना न भूलें जिनका असर सभी ऐप्लिकेशन पर पड़ता है Android 13 पर काम कर रहे हैं.

निजता

सूचना की अनुमति का असर, फ़ोरग्राउंड सेवा के दिखने के तरीके पर पड़ता है

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

आस-पास के वाई-फ़ाई डिवाइसों के लिए रनटाइम की नई अनुमति

Android के पिछले वर्शन में, उपयोगकर्ता को आपका ऐप्लिकेशन ACCESS_FINE_LOCATION कई सामान्य वाई-फ़ाई उपयोग मामलों को पूरा करने की अनुमति देता है.

क्योंकि उपयोगकर्ताओं के लिए, वाई-फ़ाई के साथ जगह की जानकारी की अनुमतियों को जोड़ना मुश्किल है सुविधा के लिए, Android 13 (एपीआई लेवल 33) की सुविधा के तहत, रनटाइम की अनुमति की सुविधा उपलब्ध कराई जाती है NEARBY_DEVICES आस-पास मौजूद डिवाइसों को ऐक्सेस करने के लिए, डिवाइस के कनेक्शन मैनेज करने वाले ऐप्लिकेशन के लिए अनुमतियों का ग्रुप वाई-फ़ाई से कनेक्ट होने पर पॉइंट मिलते हैं. यह अनुमति, NEARBY_WIFI_DEVICES वाई-फ़ाई इस्तेमाल करने के कुछ उदाहरण यहां दिए गए हैं:

  • आस-पास मौजूद डिवाइस ढूंढें या उनसे कनेक्ट करें, जैसे कि प्रिंटर या मीडिया कास्ट करने वाले डिवाइस. इस वर्कफ़्लो की मदद से आपका ऐप्लिकेशन इस तरह के काम कर सकता है:
    • बैंड से AP जानकारी पाएं, जैसे कि BLE के ज़रिए.
    • वाई-फ़ाई अवेयर की मदद से डिवाइसों को खोजें और उनसे कनेक्ट करें. साथ ही, सिर्फ़ लोकल हॉटस्पॉट का इस्तेमाल करके कनेक्ट करें.
    • WiFi Direct की मदद से, डिवाइसों को खोजें और उनसे कनेक्ट करें.
  • किसी जाने-पहचाने SSID, जैसे कार या स्मार्ट होम डिवाइस से कनेक्शन शुरू करें.
  • सिर्फ़ लोकल हॉटस्पॉट के लिए हॉटस्पॉट चालू करें.
  • आस-पास के वाई-फ़ाई अवेयर डिवाइस की रेंज.

जब तक आपका ऐप्लिकेशन, वाई-फ़ाई से जगह की जानकारी हासिल नहीं करता एपीआई, ACCESS_FINE_LOCATION के बजाय NEARBY_WIFI_DEVICES का अनुरोध करें, जब Android 13 या इसके बाद के वर्शन को टारगेट करें और वाई-फ़ाई एपीआई इस्तेमाल करें. जब आप एलान करें NEARBY_WIFI_DEVICES की अनुमति के लिए, पक्का करें कि आपका ऐप्लिकेशन कभी भी ऐसा न करे वाई-फ़ाई एपीआई से, डिवाइस की जगह की जानकारी ली जाती है. ऐसा करने के लिए, neverForLocation को android:usesPermissionFlags एट्रिब्यूट दें. यह प्रोसेस यह Android 12 (एपीआई लेवल 31) और उसके बाद वाले वर्शन में इस्तेमाल किया जाता है यह दावा करना कि ब्लूटूथ डिवाइस की जानकारी का इस्तेमाल कभी नहीं किया जाएगा जगह की जानकारी.

जानें कि आस-पास के वाई-फ़ाई डिवाइसों को ऐक्सेस करने की अनुमति का अनुरोध करें.

मीडिया की ज़्यादा अनुमतियां

डायलॉग बॉक्स के लिए ऊपर से नीचे तक, दो बटन 'अनुमति दें' और 'अनुमति नहीं दें' हैं
  अनुमति दें
पहली इमेज. सिस्टम की अनुमतियों वाला डायलॉग, जो उपयोगकर्ता को तब दिखता है, जब तो आप READ_MEDIA_AUDIO की अनुमति का अनुरोध करते हैं.

अगर आपका ऐप्लिकेशन, Android 13 या इसके बाद वाले वर्शन को टारगेट करता है और आपको अन्य ऐप्लिकेशन की मीडिया फ़ाइलों को ऐक्सेस करने की अनुमति दें बनाया गया है, तो आपको मीडिया की अनुमतियों के बजाय नीचे दी गई एक या एक से ज़्यादा अनुमतियों का अनुरोध करें READ_EXTERNAL_STORAGE अनुमति:

मीडिया का टाइप अनुरोध करने की अनुमति
इमेज और फ़ोटो READ_MEDIA_IMAGES
वीडियो READ_MEDIA_VIDEO
ऑडियो फ़ाइलें READ_MEDIA_AUDIO

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

पहली इमेज में ऐसा ऐप्लिकेशन दिखाया गया है जो READ_MEDIA_AUDIO की अनुमति का अनुरोध करता है.

अगर आप READ_MEDIA_IMAGES और एक बार में READ_MEDIA_VIDEO अनुमति, सिस्टम से जुड़ी सिर्फ़ एक अनुमति डायलॉग दिखाई देता है.

अगर आपके ऐप्लिकेशन को पहले READ_EXTERNAL_STORAGE अनुमति दी गई है, तो अनुरोध की गई READ_MEDIA_* की सभी अनुमतियां मिल जाती हैं अपग्रेड करते समय अपने-आप अपडेट हो जाएगा. समीक्षा करने के लिए, इस ADB कमांड का इस्तेमाल किया जा सकता है अपग्रेड की गई अनुमतियां:

adb shell cmd appops get --uid PACKAGE_NAME

बैकग्राउंड में बॉडी सेंसर इस्तेमाल करने के लिए नई अनुमति की ज़रूरत है

Android 13 में लॉन्च किया गया "इस्तेमाल के दौरान" का सिद्धांत इसके लिए ऐक्सेस बॉडी सेंसर, जैसे कि धड़कन की दर, तापमान, और खून में ऑक्सीजन का प्रतिशत. यह ऐक्सेस मॉडल उस मॉडल से काफ़ी मिलता-जुलता है जिसे सिस्टम ने जगह की जानकारी के लिए पेश किया था Android 10 (एपीआई लेवल 29) में उपलब्ध है.

अगर आपका ऐप्लिकेशन Android 13 को टारगेट करता है और उसे बॉडी सेंसर के ऐक्सेस की ज़रूरत है जानकारी को बैकग्राउंड में चलाते समय, आपको BODY_SENSORS_BACKGROUND मौजूदा कानूनी आदेश के अलावा BODY_SENSORS अनुमति.

परफ़ॉर्मेंस और बैटरी

बैटरी का इस्तेमाल

अगर उपयोगकर्ता आपके ऐप्लिकेशन को "प्रतिबंधित" राज्य के लिए बैकग्राउंड में बैटरी खर्च जब आपका ऐप्लिकेशन Android 13 को टारगेट करता है, तो सिस्टम BOOT_COMPLETED ब्रॉडकास्ट या LOCKED_BOOT_COMPLETED ब्रॉडकास्ट को अन्य वजहों से शुरू किया गया है.

उपयोगकर्ता अनुभव

PlaybackState से मिले मीडिया कंट्रोल

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

दूसरी इमेज में दिखाया गया है कि यह फ़ोन और टैबलेट डिवाइस पर कैसा दिखता है. क्रम से.

मीडिया कंट्रोल इस तरह से हैं कि वे फ़ोन और टैबलेट डिवाइसों पर कैसे दिखते हैं,
            सैंपल ट्रैक के उदाहरण का इस्तेमाल करके, जिसमें दिखाया गया है कि बटन कैसे दिख सकते हैं
दूसरी इमेज: फ़ोन और टैबलेट डिवाइसों पर मीडिया कंट्रोल

Android 13 से पहले के वर्शन में, यह सिस्टम MediaStyle की पांच कार्रवाइयां दिखाता था सूचना उसी क्रम में मिलेगी जिसमें उन्हें जोड़ा गया था. कॉम्पैक्ट मोड में—उदाहरण के लिए, छोटा की गई क्विक सेटिंग में—ज़्यादा से ज़्यादा setShowActionsInCompactView() में तीन कार्रवाइयाँ तय की गई हैं दिखाए गए थे.

Android 13 और इसके बाद के वर्शन में, सिस्टम में ज़्यादा से ज़्यादा पांच ऐक्शन बटन दिखते हैं. PlaybackState पर, जैसा कि नीचे दी गई टेबल में बताया गया है. कॉम्पैक्ट मोड में, सिर्फ़ पहले तीन ऐक्शन स्लॉट दिखेंगे. ऐसे ऐप्लिकेशन जो Android 13 या उन ऐप्लिकेशन को टारगेट नहीं करते जिनमें PlaybackState शामिल नहीं है, तो सिस्टम इसके आधार पर कंट्रोल दिखाएगा MediaStyle सूचना में Action सूची जोड़ी गई, जैसा कि पिछला पैराग्राफ़

स्लॉट कार्रवाई शर्तें
1 चलाएं PlaybackState का मौजूदा स्टेट इनमें से एक है:
  • STATE_NONE
  • STATE_STOPPED
  • STATE_PAUSED
  • STATE_ERROR
स्पिनर लोड हो रहा है PlaybackState का मौजूदा स्टेट इनमें से एक है:
  • STATE_CONNECTING
  • STATE_BUFFERING
रोकें PlaybackState का मौजूदा राज्य, इनमें से कोई नहीं है.
2 पीछे जाएं PlaybackState कार्रवाइयों में ACTION_SKIP_TO_PREVIOUS शामिल है.
पसंद के मुताबिक़ PlaybackState कार्रवाइयों में ACTION_SKIP_TO_PREVIOUS शामिल नहीं है और PlaybackState कस्टम ऐक्शन में कोई ऐसी कस्टम कार्रवाई शामिल है जिसे अभी तक रिलीज़ नहीं किया गया है.
कोई भी तार नहीं लगा है PlaybackState अतिरिक्त में, SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_PREV कुंजी के लिए true बूलियन वैल्यू शामिल होती है.
3 अगला PlaybackState कार्रवाइयों में ACTION_SKIP_TO_NEXT शामिल है.
पसंद के मुताबिक़ PlaybackState कार्रवाइयों में ACTION_SKIP_TO_NEXT शामिल नहीं है और PlaybackState कस्टम ऐक्शन में कोई ऐसी कस्टम कार्रवाई शामिल है जिसे अभी तक रिलीज़ नहीं किया गया है.
कोई भी तार नहीं लगा है PlaybackState अतिरिक्त में, SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_NEXT कुंजी के लिए true बूलियन वैल्यू शामिल होती है.
4 पसंद के मुताबिक़ PlaybackState कस्टम ऐक्शन में एक कस्टम ऐक्शन शामिल होता है, जिसे अभी तक लॉन्च नहीं किया गया है.
5 पसंद के मुताबिक़ PlaybackState कस्टम ऐक्शन में एक कस्टम ऐक्शन शामिल होता है, जिसे अभी तक लॉन्च नहीं किया गया है.

कस्टम ऐक्शन को उसी क्रम में रखा जाता है जिस क्रम में उन्हें PlaybackState.

ऐप्लिकेशन के रंग वाली थीम, वेबव्यू के कॉन्टेंट पर अपने-आप लागू होती है

Android 13 (एपीआई लेवल 33) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, setForceDark() तरीका अब काम नहीं करता. इसकी वजह से, इस तरीके का इस्तेमाल किए जाने पर नो-ऑप होता है.

इसके बजाय, वेबव्यू अब हमेशा सेट करता है ऐप्लिकेशन की थीम एट्रिब्यूट के हिसाब से मीडिया क्वेरी prefers-color-scheme, isLightTheme. अन्य शब्दों, अगर isLightTheme true है या इसके बारे में नहीं बताया गया है, तो prefers-color-scheme होगा light; अगर ऐसा नहीं है, तो यह dark है. इस व्यवहार का मतलब है कि वेब कॉन्टेंट हल्के या गहरे रंग वाली स्टाइल, ऐप्लिकेशन की थीम से मैच होने के लिए अपने-आप लागू हो जाती है, अगर किस तरह का कॉन्टेंट इस्तेमाल किया जा सकता है.

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

अगर आपको अब भी अपने ऐप्लिकेशन के रंग वाली थीम को पसंद के मुताबिक बनाना है, तो setAlgorithmicDarkeningAllowed() अपना पसंदीदा तरीका चुनें. पिछले Android वर्शन के साथ पुराने सिस्टम के साथ काम करने की सुविधा के लिए, हम अपनी ऑडियंस की तुलना में अन्य setAlgorithmicDarkeningAllowed() तरीका शामिल है.

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

कनेक्टिविटी

BluetoothAdapter#enable() और BluetoothAdapter#disable() रोके गए

Android 13 (एपीआई लेवल 33) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, BluetoothAdapter#enable() और BluetoothAdapter#disable() के तरीके अब काम नहीं करते false वापस करें.

इस तरह के ऐप्लिकेशन को इन बदलावों से छूट दी गई है:

  • डिवाइस के मालिक के ऐप्लिकेशन
  • प्रोफ़ाइल के मालिक के ऐप्लिकेशन
  • सिस्टम ऐप्लिकेशन

Google Play सेवाएं

विज्ञापन आईडी के लिए अनुमति ज़रूरी है

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

<manifest ...>
    <!-- Required only if your app targets Android 13 or higher. -->
    <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

    <application ...>
        ...
    </application>
</manifest>

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

अगर आपका ऐप्लिकेशन ऐसे SDK टूल का इस्तेमाल करता है जो लाइब्रेरी की लाइब्रेरी में AD_ID अनुमति का एलान करते हैं मेनिफ़ेस्ट करती है, तो अनुमति को डिफ़ॉल्ट. इस मामले में, आपको अपने ऐप्लिकेशन के मेनफ़िएस्ट फ़ाइल में सेव की गई.

इस बारे में ज़्यादा जानने के लिए, विज्ञापन देखें ID, Play Console के सहायता केंद्र पर जाएं.

बिना SDK टूल के अपडेट की गई पाबंदियां

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

अगर आपका ऐप्लिकेशन Android 13 को टारगेट नहीं करता है, तो इनमें से कुछ बदलाव दिखेंगे शायद आप पर तुरंत असर न पड़े. हालांकि, फ़िलहाल कुछ रणनीतियों का इस्तेमाल किया जा सकता है बिना SDK टूल वाले इंटरफ़ेस (आपके ऐप्लिकेशन के टारगेट एपीआई के हिसाब से) लेवल), बिना SDK टूल के किसी तरीके या फ़ील्ड का इस्तेमाल करने से, आपके है.

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

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