साथ काम करने के फ़्रेमवर्क में बदलाव (Android 11)

इस पेज पर, ऐप्लिकेशन पर असर डालने वाले हर उस बदलाव के बारे में बताया गया है जिसे Android 11 (एपीआई लेवल 30) में, कंपैटिबिलिटी फ़्रेमवर्क में जोड़ा गया था. Android 11 को टारगेट करने के लिए, अपने ऐप्लिकेशन को टेस्ट और डीबग करने के लिए, इस सूची का इस्तेमाल डेवलपर के विकल्पों और ADB कमांड के साथ करें.

ADD_CONTENT_OBSERVER_FLAGS

बदलाव का आईडी: 150939131

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, एक नया सार्वजनिक एपीआई ओवरलोड onChange(boolean, Uri, int) उपलब्ध है. इसमें एक पूर्णांक flags आर्ग्युमेंट शामिल है.

यह नया तरीका, सार्वजनिक एसडीके का विकल्प है. यह उन ऐप्लिकेशन के लिए है जो नॉन-एसडीके onChange() ओवरलोड किए गए तरीके का इस्तेमाल करते हैं. इसमें पूर्णांक userId आर्ग्युमेंट शामिल होता है.

ADMIN_APP_PASSWORD_COMPLEXITY

बदलाव का आईडी: 123562444

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले एडमिन ऐप्लिकेशन के लिए, जब भी कोई ऐप्लिकेशन पासवर्ड से जुड़ी ऐसी ज़रूरी शर्त सेट करता है जो फ़िलहाल असाइन किए गए पासवर्ड की क्वालिटी से मेल नहीं खाती, तब गड़बड़ी का मैसेज दिखाएं. उदाहरण के लिए, जब पासवर्ड की क्वालिटी को DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED पर सेट किया जाता है, तो कोई ऐप्लिकेशन पासवर्ड की कम से कम लंबाई सेट नहीं कर पाएगा. इस मामले में, पासवर्ड की कम से कम लंबाई सेट करने से पहले, ऐप्लिकेशन को सबसे पहले setPasswordQuality() तरीके को कॉल करना चाहिए. इसके बाद ही, उसे setPasswordMinimumLength() तरीके को कॉल करना चाहिए.

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

APP_DATA_DIRECTORY_ISOLATION

बदलाव का आईडी: 143937733

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले ऐप्लिकेशन, अब किसी भी ऐप्लिकेशन की निजी डेटा डायरेक्ट्री में मौजूद फ़ाइलों को ऐक्सेस नहीं कर सकते. भले ही, दूसरे ऐप्लिकेशन का टारगेट SDK वर्शन कुछ भी हो.

ज़्यादा जानने के लिए, निजी डायरेक्ट्री का ऐक्सेस लेख पढ़ें.

APN_READING_PERMISSION_CHANGE_ID

बदलाव का आईडी: 124107808

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अब APN डेटाबेस को ऐक्सेस करने के लिए Manifest.permission.WRITE_APN_SETTINGS अनुमति की ज़रूरत होती है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, एपीएन डेटाबेस के लिए, पढ़ने का सीमित ऐक्सेस लेख पढ़ें.

BACKGROUND_RATIONALE_CHANGE_ID

बदलाव का आईडी: 147316723

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

अब ऐप्लिकेशन को हर बार, डिवाइस की जगह की जानकारी को बैकग्राउंड में ऐक्सेस करने का अनुरोध करते समय, इसकी वजह बतानी होगी.

इस बदलाव के बारे में ज़्यादा जानने के लिए, Android 11 में बैकग्राउंड में जगह की जानकारी ऐक्सेस करने के तरीके से जुड़ी गाइड देखें. इसमें Android 11 में जगह की जानकारी से जुड़े निजता सेटिंग में हुए बदलावों के बारे में बताया गया है.

CALLBACK_ON_CLEAR_CHANGE

बदलाव का आईडी: 119147584

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

जब भी Editor.clear को कॉल किया जाता है, तब null कुंजी के साथ OnSharedPreferenceChangeListener.onSharedPreferenceChanged को वापस कॉल किया जाता है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, OnSharedPreferenceChangeListener के लिए कॉलबैक में हुए बदलाव देखें.

CALLBACK_ON_MORE_ERROR_CODE_CHANGE

बदलाव का आईडी: 130595455

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

अब updateAvailableNetworks(List, Executor, Consumer) और setPreferredOpportunisticDataSubscription(int, boolean, Executor, Consumer) के लिए, गड़बड़ी कोड की जानकारी ज़्यादा दी गई है.

CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE

बदलाव का आईडी: 148180766

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

यह startWatchingMode(String, String, AppOpsManager.OnOpChangedListener) के व्यवहार में किया गया मामूली बदलाव है. इस बदलाव से पहले, सिस्टम उस ओप के लिए वापस कॉल करता था जिसे स्विच किया गया था. बदलाव के बाद, सिस्टम उस ओप के लिए वापस कॉल करेगा जिसका अनुरोध किया गया था. अगर कोई ओप नहीं दिया गया है, तो सिस्टम स्विच किए गए सभी ओप के लिए वापस कॉल करेगा.

CAMERA_MICROPHONE_CAPABILITY_CHANGE_ID

बदलाव का आईडी: 136219221

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, फ़ोरग्राउंड सेवाओं को कैमरे और माइक्रोफ़ोन के इस्तेमाल की अनुमति सिर्फ़ तब मिलती है, जब मेनिफ़ेस्ट फ़ाइल में R.attr.foregroundServiceType को ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA और ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE के तौर पर कॉन्फ़िगर किया गया हो. Android के पुराने वर्शन में, फ़ोरग्राउंड सेवाओं को कैमरे और माइक्रोफ़ोन की सुविधाएं अपने-आप मिल जाती थीं.

इस बदलाव के बारे में ज़्यादा जानने के लिए, Android 11 में फ़ोरग्राउंड सेवा के टाइप देखें.

CHANGE_BACKGROUND_CUSTOM_TOAST_BLOCK

बदलाव का आईडी: 128611929

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

ऐप्लिकेशन अब बैकग्राउंड में कस्टम टोस्ट पोस्ट नहीं कर सकते. हालांकि, बैकग्राउंड में होने पर भी ऐप्लिकेशन, Toast.makeText(Context, CharSequence, int) तरीके और इसके वैरिएंट का इस्तेमाल करके सूचनाएं पोस्ट कर सकते हैं.

इस बदलाव के बारे में ज़्यादा जानने के लिए, कस्टम टोस्ट व्यू ब्लॉक कर दिए गए हैं लेख पढ़ें.

CHANGE_RESTRICT_SAW_INTENT

बदलाव का आईडी: 135920175

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

android.settings.MANAGE_APP_OVERLAY_PERMISSION कार्रवाई और package डेटा यूआरआई स्कीम का इस्तेमाल करने वाले इंटेंट, अब उपयोगकर्ता को अनुमति मैनेज करने के लिए ऐप्लिकेशन से जुड़ी स्क्रीन पर रीडायरेक्ट नहीं करते. इसके बजाय, उपयोगकर्ता को एक ऐसी स्क्रीन पर ले जाया जाता है जहां वे उन सभी ऐप्लिकेशन को मैनेज कर सकते हैं जिन्होंने अनुमति का अनुरोध किया है.

CHANGE_TEXT_TOASTS_IN_THE_SYSTEM

बदलाव का आईडी: 147798919

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

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

DEFAULT_SCOPED_STORAGE

बदलाव का आईडी: 149924527

डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए चालू होती है.

Android 11 को टारगेट करने वाले सभी ऐप्लिकेशन, अब डिफ़ॉल्ट रूप से स्कोप किए गए स्टोरेज का इस्तेमाल करते हैं. साथ ही, अब वे स्कोप किए गए स्टोरेज से ऑप्ट आउट नहीं कर सकते.

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

Android 11 में स्कोप किए गए स्टोरेज में हुए बदलावों के बारे में ज़्यादा जानने के लिए, Android 11 में Android स्टोरेज में हुए बदलावों के बारे में जानकारी देने वाले पेज पर, स्कोप किया गया स्टोरेज सेक्शन देखें.

EMPTY_INTENT_ACTION_CATEGORY

बदलाव आईडी: 151163173

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अगर इंटेंट फ़िल्टर का action या category एक खाली स्ट्रिंग है, तो सिस्टम अब गड़बड़ी दिखाएगा. Android 11 से पहले के वर्शन में, प्लैटफ़ॉर्म में मौजूद एक बग की वजह से, यह टेस्ट बिना किसी गड़बड़ी के पास हो गया. ध्यान दें कि इसमें ऐसे मामले शामिल नहीं हैं जिनमें एट्रिब्यूट की वैल्यू शून्य हो या वह मौजूद न हो. ऐसा इसलिए, क्योंकि इन मामलों में हमेशा गड़बड़ी होती है.

FILTER_APPLICATION_QUERY

बदलाव का आईडी: 135549675

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

अब ऐप्लिकेशन को उन पैकेज और इंटेंट के बारे में बताना होगा जिनका इस्तेमाल वे करना चाहते हैं. इसके बाद ही, उन्हें डिवाइस पर मौजूद अन्य ऐप्लिकेशन के बारे में जानकारी मिल पाएगी. इस तरह की जानकारी, ऐप्लिकेशन के मेनिफ़ेस्ट में <queries> टैग का इस्तेमाल करके दी जानी चाहिए.

Android 11 में, इंस्टॉल किए गए अन्य ऐप्लिकेशन से क्वेरी करने और उनके साथ इंटरैक्ट करने के तरीके के बारे में ज़्यादा जानने के लिए, packageVisibility निजता पेज देखें.

FORCE_ENABLE_SCOPED_STORAGE

बदलाव का आईडी: वैल्यू: 132649864

डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

Android 11 को टारगेट करने वाले सभी ऐप्लिकेशन, अब डिफ़ॉल्ट रूप से स्कोप किए गए स्टोरेज का इस्तेमाल करते हैं. साथ ही, अब वे स्कोप किए गए स्टोरेज से ऑप्ट आउट नहीं कर सकते.

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

Android 11 में स्कोप किए गए स्टोरेज में हुए बदलावों के बारे में ज़्यादा जानने के लिए, Android 11 में Android स्टोरेज में हुए बदलावों के बारे में जानकारी देने वाले पेज पर, स्कोप किया गया स्टोरेज सेक्शन देखें.

GET_DATA_CONNECTION_STATE_R_VERSION

बदलाव का आईडी: 148535736

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

PreciseDataConnectionState#getDataConnectionState के लिए एसडीके का वर्शन देखने के लिए.

GET_DATA_STATE_R_VERSION

बदलाव का आईडी: 148534348

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

getDataState() के लिए, एसडीके का वर्शन देखने के लिए.

GET_PROVIDER_SECURITY_EXCEPTIONS

बदलाव का आईडी: 150935354

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, getProvider(String) अब सुरक्षा से जुड़ी कोई भी गड़बड़ी नहीं होती.

GET_TARGET_SDK_VERSION_CODE_CHANGE

बदलाव का आईडी: 145147528

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

SmsManager.sendResolverResult() तरीके के लिए एसडीके का वर्शन देखने के लिए.

GWP_ASAN

बदलाव का आईडी: 135634846

डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

इस कुकी से, ऐप्लिकेशन में नेटिव मेमोरी से जुड़ी गड़बड़ी की पहचान करने की सुविधा चालू होती है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, GWP-ASan गाइड देखें.

HIDE_MAXTARGETSDK_P_HIDDEN_APIS

बदलाव का आईडी: 149997251

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

Android 10 (एपीआई लेवल 29) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, max-target-p (greylist-max-p) सूची में शामिल सभी नॉन-एसडीके इंटरफ़ेस का ऐक्सेस हटा देता है. यह सूची, Android 10 (एपीआई लेवल 29) के लिए है.

HIDE_MAXTARGETSDK_Q_HIDDEN_APIS

बदलाव का आईडी: 149994052

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, max-target-q (greylist-max-q) सूची में शामिल सभी नॉन-एसडीके इंटरफ़ेस का ऐक्सेस हटा देता है. यह सूची, Android 11 (एपीआई लेवल 30) के लिए है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, Android 11 में अब ब्लॉक किए गए गैर-एसडीके इंटरफ़ेस देखें.

LISTEN_CODE_CHANGE

बदलाव का आईडी: 147600208

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

TelephonyManager.listen(PhoneStateListener, int) के लिए एसडीके का वर्शन देखने के लिए.

MISSING_APP_TAG

बदला गया आईडी: 150776642

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अब गड़बड़ी तब दिखती है, जब ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में application या instrumentation टैग मौजूद नहीं होता.

NATIVE_HEAP_POINTER_TAGGING

बदलाव का आईडी: 135754954

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, नेटिव हीप के लिए मेमोरी असाइनमेंट में अब सबसे अहम बाइट में नॉन-ज़ीरो टैग होता है.

ज़्यादा जानने के लिए, हीप पॉइंटर टैगिंग देखें.

PHONE_STATE_LISTENER_LIMIT_CHANGE_ID

बदलाव का आईडी: 150880553

डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए चालू होती है.

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अब TelephonyManager.listen(PhoneStateListener, int) के ज़रिए रजिस्टर किए जा सकने वाले PhoneStateListener ऑब्जेक्ट की संख्या सीमित कर दी गई है. डिफ़ॉल्ट सीमा 50 है. इसे डिवाइस के कॉन्फ़िगरेशन को अपडेट करके बदला जा सकता है. इस सीमा को लागू करने के लिए, TelephonyManager.listen(PhoneStateListener, int) से मिले IllegalStateException का इस्तेमाल किया जाता है. ऐसा तब होता है, जब उल्लंघन करने वाली प्रोसेस बहुत ज़्यादा लिसनर रजिस्टर करने की कोशिश करती है.

PREVENT_META_REFLECTION_BLACKLIST_ACCESS

बदलाव का आईडी: 142365358

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले ऐप्लिकेशन, अब प्रतिबंधित किए गए गैर-एसडीके इंटरफ़ेस को ऐक्सेस करने के लिए, रिफ़्लेक्शन की अतिरिक्त लेयर का इस्तेमाल नहीं कर सकते.

PROCESS_CAPABILITY_CHANGE_ID

बदलाव का आईडी: 136274596

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, Context.BIND_INCLUDE_CAPABILITIES फ़्लैग का इस्तेमाल किया जा सकता है. इससे, क्लाइंट प्रोसेस से बाउंड सेवा में, इस्तेमाल के दौरान की जाने वाली कार्रवाइयों को पास किया जा सकता है.

REMOVE_ANDROID_TEST_BASE

बदलाव का आईडी: 133396946

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अगर ऐप्लिकेशन android.test.runner पर निर्भर नहीं है, तो android.test.base लाइब्रेरी हटा दी गई है. ऐसा इसलिए, क्योंकि यह android.test.base लाइब्रेरी की क्लास पर निर्भर करती है.

REQUEST_ACCESSIBILITY_BUTTON_CHANGE

बदलाव का आईडी: 136293963

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

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

इस बदलाव के बारे में ज़्यादा जानने के लिए, मेटाडेटा फ़ाइल में सुलभता बटन के इस्तेमाल की जानकारी देना लेख पढ़ें.

RESOURCES_ARSC_COMPRESSED

बदलाव का आईडी: 132742131

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

अगर Android 11 (एपीआई लेवल 30) को टारगेट करने वाले ऐप्लिकेशन में कंप्रेस की गई resources.arsc फ़ाइल मौजूद है या यह फ़ाइल 4-बाइट बाउंड्री पर अलाइन नहीं है, तो उन्हें इंस्टॉल नहीं किया जा सकता.

इस बदलाव के बारे में ज़्यादा जानने के लिए, कंप्रेस की गई संसाधन फ़ाइलें लेख पढ़ें.

RESTRICT_STORAGE_ACCESS_FRAMEWORK

बदलाव का आईडी: 141600225

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

अगर आपका ऐप्लिकेशन Android 11 को टारगेट करता है और Storage Access Framework (SAF) का इस्तेमाल करता है, तो अब ACTION_OPEN_DOCUMENT और ACTION_OPEN_DOCUMENT_TREE इंटेंट ऐक्शन का इस्तेमाल करके, कुछ डायरेक्ट्री ऐक्सेस नहीं की जा सकेंगी. इन बदलावों के बारे में ज़्यादा जानने के लिए, Android 11 में स्टोरेज से जुड़े निजता अपडेट के बारे में जानकारी देने वाले पेज पर, दस्तावेज़ ऐक्सेस करने से जुड़ी पाबंदियां सेक्शन देखें.

SELINUX_LATEST_CHANGES

बदलाव का आईडी: 143539591

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

इस बदलाव से, ऐप्लिकेशन को untrusted_app_R-targetSDk SELinux डोमेन का ऐक्सेस मिल जाता है. यह कंपैटिबिलिटी फ़्रेमवर्क में किए गए बुनियादी बदलावों में से एक है. इससे ऐप्लिकेशन, targetSdkVersion से जुड़े अन्य बदलावों को टॉगल कर सकते हैं. इसके लिए, उन्हें अपने ऐप्लिकेशन के targetSDKVersion में बदलाव करने की ज़रूरत नहीं होती. इसलिए, आपको Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, इस बदलाव को बंद नहीं करना चाहिए. ऐसा करने पर, ऐप्लिकेशन काम नहीं करेगा.

इस बदलाव का असर उन ऐप्लिकेशन पर नहीं पड़ेगा जो शेयर किए गए उपयोगकर्ता आईडी का इस्तेमाल करते हैं.

THROW_SECURITY_EXCEPTIONS

बदलाव का आईडी: 147340954

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 से पहले, अनुमति से जुड़ी गड़बड़ी के लिए setEnabled एपीआई सिर्फ़ SecurityException दिखाता था. Android 11 में ऐसा नहीं होता. साथ ही, कई वजहों से SecurityException थ्रो किया जा सकता है. इनमें से कोई भी वजह कॉलर को नहीं बताई जाती.

एपीआई के मौजूदा तरीके को बनाए रखने के लिए, अगर Android 11 को टारगेट न करने वाले किसी ऐप्लिकेशन के लिए, लेगसी अनुमति से जुड़ी समस्या या ऐक्टर के तौर पर काम करने वाले ऐप्लिकेशन के लिए नीति लागू करने से जुड़ी समस्या होती है, तो अपवाद को IllegalStateException में बदल दिया जाता है. यह IllegalStateException, Android 11 से पहले सोर्स में मौजूद था.

USE_SET_LOCATION_ENABLED

बदलाव का आईडी: 117835097

डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू होती है जो Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करते हैं.

Android 11 को टारगेट करने वाले एडमिन ऐप्लिकेशन, अब Settings.Secure.LOCATION_MODE सेटिंग को बदलने के लिए, DevicePolicyManager.setSecureSetting(ComponentName, String, String) का इस्तेमाल नहीं कर सकते. इसके बजाय, उन्हें DevicePolicyManager.setLocationEnabled(ComponentName, boolean) का इस्तेमाल करना चाहिए.