इस पेज पर, ऐप्लिकेशन के व्यवहार में हुए हर उस बदलाव के बारे में बताया गया है जिसका असर ऐप्लिकेशन पर पड़ता है. इस बदलाव को Android 11 (एपीआई लेवल 30) में, काम करने के तरीके से जुड़े फ़्रेमवर्क में जोड़ा गया था. Android 11 को टारगेट करने के लिए, अपने ऐप्लिकेशन की जांच करने और उसे डीबग करने के लिए, इस सूची का इस्तेमाल डेवलपर के विकल्पों और एडीबी निर्देशों के साथ करें.
ADD_CONTENT_OBSERVER_FLAGS
बदलाव आईडी: 150939131
डिफ़ॉल्ट स्थिति: यह Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू होता है.
Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, एक नया सार्वजनिक एपीआई ओवरलोड
onChange(boolean, Uri, int)
है. इसमें पूर्णांक flags
आर्ग्युमेंट शामिल है.
यह नया तरीका, SDK टूल के सार्वजनिक वर्शन का एक विकल्प है. इसका इस्तेमाल उन ऐप्लिकेशन के लिए किया जा सकता है जो SDK टूल के बाहर के 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 को टारगेट करने वाले ऐप्लिकेशन के लिए, अब एपीएन डेटाबेस को ऐक्सेस करने के लिए, 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 में, इंस्टॉल किए गए अन्य ऐप्लिकेशन से क्वेरी करने और इंटरैक्ट करने के तरीके के बारे में ज़्यादा जानने के लिए, पैकेज के दिखने की सेटिंग का निजता पेज देखें.
FORCE_ENABLE_SCOPED_STORAGE
बदलाव आईडी: वैल्यू: 132649864
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.
Android 11 को टारगेट करने वाले सभी ऐप्लिकेशन, अब डिफ़ॉल्ट रूप से स्कोप किए गए स्टोरेज का इस्तेमाल करते हैं. साथ ही, अब वे स्कोप किए गए स्टोरेज से ऑप्ट आउट नहीं कर सकते.
हालांकि, अगर आपका ऐप्लिकेशन अब भी Android 10 (एपीआई लेवल 29) या इससे पहले के वर्शन को टारगेट करता है, तो आपके पास स्कोप वाले स्टोरेज की मदद से अपने ऐप्लिकेशन की जांच करने का विकल्प है. इसके लिए, इस बदलाव को टॉगल करके, अपने ऐप्लिकेशन के टारगेट SDK टूल के वर्शन और मेनिफ़ेस्ट फ़्लैग की वैल्यू पर ध्यान दिए बिना ऐसा किया जा सकता है.
Android 11 में स्कोप वाले स्टोरेज में हुए बदलावों के बारे में ज़्यादा जानने के लिए, Android 11 में Android स्टोरेज में हुए बदलावों के पेज पर, स्कोप वाला स्टोरेज सेक्शन देखें.
GET_DATA_CONNECTION_STATE_R_VERSION
बदलाव आईडी: 148535736
डिफ़ॉल्ट स्थिति: यह Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू होता है.
PreciseDataConnectionState#getDataConnectionState
के लिए SDK टूल का वर्शन देखने के लिए.
GET_DATA_STATE_R_VERSION
बदलाव आईडी: 148534348
डिफ़ॉल्ट स्थिति: यह Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू होता है.
getDataState()
के लिए SDK टूल का वर्शन देखने के लिए.
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()
तरीके के लिए SDK टूल का वर्शन देखने के लिए.
GWP_ASAN
बदलाव आईडी: 135634846
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.
ऐप्लिकेशन में सैंपल की गई नेटिव मेमोरी से जुड़ी गड़बड़ी का पता लगाने की सुविधा चालू करता है.
इस बदलाव के बारे में ज़्यादा जानने के लिए, GWP-ASan गाइड देखें.
HIDE_MAXTARGETSDK_P_HIDDEN_APIS
बदलाव का आईडी: 149997251
डिफ़ॉल्ट स्थिति: यह Android 10 (एपीआई लेवल 29) या इससे बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू होता है.
Android 10 (एपीआई लेवल 29) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, उन सभी नॉन-SDK इंटरफ़ेस का ऐक्सेस हटा देता है जो Android 10 (एपीआई लेवल 29) के लिए max-target-p
(greylist-max-p
) सूची का हिस्सा हैं.
HIDE_MAXTARGETSDK_Q_HIDDEN_APIS
बदलाव आईडी: 149994052
डिफ़ॉल्ट स्थिति: यह Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू होता है.
Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, उन सभी नॉन-एसडीके इंटरफ़ेस का ऐक्सेस हटा देता है जो Android 11 (एपीआई लेवल 30) के लिए max-target-q
(greylist-max-q
) सूची का हिस्सा हैं.
इस बदलाव के बारे में ज़्यादा जानने के लिए, SDK टूल के बाहर के ऐसे इंटरफ़ेस देखें जिन्हें अब Android 11 में ब्लॉक किया गया है.
LISTEN_CODE_CHANGE
बदलाव आईडी: 147600208
डिफ़ॉल्ट स्थिति: यह Android 10 (एपीआई लेवल 29) या इससे बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू होता है.
TelephonyManager.listen(PhoneStateListener,
int)
के लिए SDK टूल का वर्शन देखने के लिए.
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.base
लाइब्रेरी को हटा दिया गया है. ऐसा तब किया जाता है, जब ऐप्लिकेशन android.test.runner
पर निर्भर न हो. ऐसा इसलिए किया जाता है, क्योंकि यह 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
फ़ाइल हो या यह फ़ाइल, चार बाइट के बाउंड्री पर अलाइन न की गई हो.
इस बदलाव के बारे में ज़्यादा जानने के लिए, संकुचित संसाधन फ़ाइलें देखें.
RESTRICT_STORAGE_ACCESS_FRAMEWORK
बदलाव आईडी: 141600225
डिफ़ॉल्ट स्थिति: यह Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू होता है.
अगर आपका ऐप्लिकेशन Android 11 को टारगेट करता है और स्टोरेज ऐक्सेस फ़्रेमवर्क (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)
का इस्तेमाल करना चाहिए.