تغييرات إطار عمل التوافق (Android 11)

توضِّح هذه الصفحة كل تغيير في السلوك يؤثّر في التطبيقات، والذي تمت إضافته إلى إطار المتوافق في Android 11 (المستوى 30 لواجهة برمجة التطبيقات). استخدِم هذه القائمة بالاشتراك مع خيارات المطوّر وأوامر ADB لاختبار تطبيقك وتصحيح أخطاءه أثناء الاستعداد لاستهداف Android 11.

ADD_CONTENT_OBSERVER_FLAGS

رقم تعريف التغيير: 150939131

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 11 من Android، تتوفّر هناك طريقة جديدة لتحميل واجهة برمجة التطبيقات العامة onChange(boolean, Uri, int) تتضمّن وسيطة عدد صحيح flags.

هذه الطريقة الجديدة هي بديل لحزمة SDK العامة للتطبيقات التي تستخدِم الطريقة المثقلّة onChange() غير المضمّنة في حزمة SDK والتي تتضمّن وسيطة عدد صحيح userId.

ADMIN_APP_PASSWORD_COMPLEXITY

معرّف التغيير: 123562444

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى تطبيقات المشرف التي تستهدف الإصدار 11 من نظام التشغيل Android، يجب عرض خطأ عندما يحدِّد أحد التطبيقات شرطًا لكلمة المرور غير ملائم لجودة كلمة المرور المحدَّدة حاليًا. على سبيل المثال، عند ضبط جودة كلمة المرور على DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED، لن يتمكّن التطبيق من ضبط حد أدنى لطول كلمة المرور. في هذه الحالة، قبلمحاولة ضبط الحد الأدنى لطول كلمة المرور، يجب أن يستدعي التطبيق أولاً setPasswordQuality() الطريقة ثم يستدعيsetPasswordMinimumLength() الطريقة.

بالإضافة إلى ذلك، عندما يخفض تطبيق المشرف الذي يستهدف الإصدار 11 من نظام التشغيل Android ملفوظة كلمة المرور، تتم إعادة ضبط أي متطلبات حالية لكلمة المرور لم تعُد سارية إلى قيمها التلقائية.

APP_DATA_DIRECTORY_ISOLATION

معرّف التغيير: 143937733

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

لم تعُد التطبيقات التي تستهدف الإصدار 11 من نظام التشغيل Android قادرة على الوصول إلى الملفات في أدلة data الخاصة بأي تطبيق، بغض النظر عن إصدار حزمة SDK المستهدَف للتطبيق الآخر.

لمزيد من المعلومات، يُرجى الاطّلاع على مقالة الوصول إلى الدلائل الخاصة.

APN_READING_PERMISSION_CHANGE_ID

معرّف التغيير: 124107808

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار Android 11، أصبح الوصول إلى قاعدة بيانات APN الآن يتطلب الحصول على إذن Manifest.permission.WRITE_APN_SETTINGS.

لمزيد من المعلومات عن هذا التغيير، اطّلِع على مقالة إمكانية الوصول المحدود للقراءة إلى قاعدة بيانات APN.

BACKGROUND_RATIONALE_CHANGE_ID

معرّف التغيير: 147316723

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

على التطبيقات الآن تقديم سبب وجيه صالح في كل مرة تطلب فيها الوصول إلى الموقع الجغرافي للجهاز في الخلفية.

لمزيد من المعلومات حول هذا التغيير، يُرجى الاطّلاع على الدليل حول كيفية الوصول إلى الموقع الجغرافي في الخلفية في Android 11 الذي يتناول تغييرات الخصوصية المرتبطة بالموقع الجغرافي في Android 11.

CALLBACK_ON_CLEAR_CHANGE

رقم تعريف التغيير: 119147584

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

كلما تمّت الدعوة إلى Editor.clear ، يتمّ الآن إجراء مكالمة إلى OnSharedPreferenceChangeListener.onSharedPreferenceChanged باستخدام مفتاح null.

لمزيد من المعلومات عن هذا التغيير، اطّلِع على تغييرات طلبات الاستدعاء لسمة 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 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 11 من نظام التشغيل Android، لا تحصل الخدمات التي تعمل في المقدّمة على سوى إمكانيات استخدام الكاميرا والميكروفون أثناء الاستخدام عندما يتم ضبط العنصر 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 باستخدام الأسلوب Toast.makeText(Context, CharSequence, int) وأشكاله المختلفة أثناء تشغيلها في الخلفية.

لمزيد من المعلومات عن هذا التغيير، يُرجى الاطّلاع على مقالة تم منع استخدام مشاهد الإشعارات المنبثقة المخصّصة.

CHANGE_RESTRICT_SAW_INTENT

معرّف التغيير: 135920175

الحالة التلقائية: لا يمكن إيقاف هذا التغيير أو تفعيله. ولا يتم تسجيله إلا من خلال إطار عمل التوافق.

لم تعُد النوايا التي تستخدم الإجراء android.settings.MANAGE_APP_OVERLAY_PERMISSION وpackage مخطّط URI للبيانات تنقل المستخدم إلى شاشة خاصة بالتطبيق لإدارة الإذن المرتبط. بدلاً من ذلك، يتم توجيه المستخدم إلى شاشة يمكنه من خلالها إدارة جميع التطبيقات التي طلبت الإذن.

CHANGE_TEXT_TOASTS_IN_THE_SYSTEM

معرّف التغيير: 147798919

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

يعرض SystemUI الآن الإشعارات المنبثقة النصية بدلاً من عرضها داخل التطبيق. ويمنع ذلك التطبيقات من التحايل على القيود المفروضة على نشر إشعارات منبثقة مخصّصة في الخلفية.

DEFAULT_SCOPED_STORAGE

معرّف التغيير: 149924527

الحالة التلقائية: مفعَّل لجميع التطبيقات.

تستخدم الآن جميع التطبيقات التي تستهدف الإصدار Android 11 مساحة التخزين المحدود النطاق تلقائيًا، ولم يعُد بإمكانها إيقاف ميزة "مساحة التخزين المحدود النطاق".

ومع ذلك، يمكنك اختبار تطبيقك بدون مساحة التخزين ذات النطاق المحدّد، بغض النظر عن إصدار حزمة SDK المستهدَف لتطبيقك وقيم علامة البيان، من خلال إيقاف هذا التغيير.

للتعرّف على مزيد من المعلومات عن التغييرات التي طرأت على ميزة "مساحة التخزين المخصّصة" في Android 11، اطّلِع على القسم مساحة التخزين المخصّصة في الصفحة حول التغييرات التي طرأت على مساحة تخزين Android في Android 11.

EMPTY_INTENT_ACTION_CATEGORY

معرّف التغيير: 151163173

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 11 من Android، يُرسِل النظام الآن خطأ إذا كانت 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 في Android 11.

GET_DATA_CONNECTION_STATE_R_VERSION

معرّف التغيير: 148535736

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

للتحقّق من إصدار حزمة SDK لتطبيق PreciseDataConnectionState#getDataConnectionState:

GET_DATA_STATE_R_VERSION

معرّف التغيير: 148534348

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

للتحقّق من إصدار حزمة SDK لتطبيق getDataState().

GET_PROVIDER_SECURITY_EXCEPTIONS

معرّف التغيير: 150935354

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 11 من نظام التشغيل Android (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث، getProvider(String) لم تعُد تُظهر أي استثناءات أمان.

GET_TARGET_SDK_VERSION_CODE_CHANGE

رقم تعريف التغيير: 145147528

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 10 (المستوى 29 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

للتحقّق من إصدار حزمة SDK لطريقة SmsManager.sendResolverResult()

GWP_ASAN

معرّف التغيير: 135634846

الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

تفعيل ميزة رصد أخطاء الذاكرة الأصلية المستندة إلى عيّنات في التطبيقات

لمزيد من المعلومات عن هذا التغيير، يُرجى الاطّلاع على دليل GWP-ASan.

HIDE_MAXTARGETSDK_P_HIDDEN_APIS

معرّف التغيير: 149997251

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 10 (المستوى 29 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 10 من Android (المستوى 29 من واجهة برمجة التطبيقات) أو إصدارًا أحدث، ستتم إزالة إمكانية الوصول إلى جميع واجهات غير حزمة تطوير البرامج (SDK) التي تشكّل جزءًا من قائمة max-target-p (greylist-max-p) لنظام التشغيل Android 10 (المستوى 29 من واجهة برمجة التطبيقات).

HIDE_MAXTARGETSDK_Q_HIDDEN_APIS

رقم تعريف التغيير: 149994052

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 11 من Android (المستوى 30 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث، ستتم إزالة إمكانية الوصول إلى جميع واجهات برمجة التطبيقات غير حِزم SDK التي تشكّل جزءًا من قائمة max-target-q (greylist-max-q) لنظام التشغيل Android 11 (المستوى 30 لواجهة برمجة التطبيقات).

لمزيد من المعلومات عن هذا التغيير، اطّلِع على الواجهات غير المتوفرة في حزمة SDK والتي تم حظرها الآن في Android 11.

LISTEN_CODE_CHANGE

معرّف التغيير: 147600208

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 10 (المستوى 29 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

للتحقّق من إصدار حزمة SDK لتطبيق TelephonyManager.listen(PhoneStateListener, int)

MISSING_APP_TAG

معرّف التغيير: 150776642

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 11 من نظام التشغيل Android، يتم الآن عرض خطأ عند عدم توفّر علامة application أو instrumentation في ملف بيان التطبيق.

NATIVE_HEAP_POINTER_TAGGING

معرّف التغيير: 135754954

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 11 من Android، تحتوي عمليات تخصيص الذاكرة العشوائية الأصلية الآن على علامة غير صفرية في البايت الأكثر أهمية.

لمزيد من المعلومات، اطّلِع على مقالة تصنيف مُشير الحِزمة.

PHONE_STATE_LISTENER_LIMIT_CHANGE_ID

معرّف التغيير: 150880553

الحالة التلقائية: مفعَّل لجميع التطبيقات.

بالنسبة إلى التطبيقات التي تستهدف الإصدار Android 11، تمّ وضع حدّ الآن لعدد عناصر PhoneStateListener التي يمكن لأي عملية تسجيلها من خلال TelephonyManager.listen(PhoneStateListener, int). الحدّ الأقصى التلقائي هو 50، ويمكن تغييره من خلال تعديلات إعدادات الجهاز عن بُعد. يتم فرض هذا الحدّ باستخدام IllegalStateException الذي يُنشئه TelephonyManager.listen(PhoneStateListener, int) عندما تحاول العملية المعنيّة تسجيل عدد مستمعين أكبر من الحدّ المسموح به.

PREVENT_META_REFLECTION_BLACKLIST_ACCESS

معرّف التغيير: 142365358

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

لم تعُد التطبيقات التي تستهدف الإصدار 11 من نظام التشغيل Android قادرة على استخدام طبقة إضافية من الاستكشاف للوصول إلى الواجهات غير المتوفّرة في حزمة SDK والتي تم حظرها.

PROCESS_CAPABILITY_CHANGE_ID

معرّف التغيير: 136274596

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف Android 11، يمكن الآن استخدام العلامة Context.BIND_INCLUDE_CAPABILITIES لتمرير الإمكانات أثناء الاستخدام من عملية العميل إلى خدمة مرتبطة.

REMOVE_ANDROID_TEST_BASE

معرّف التغيير: 133396946

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 11 من نظام التشغيل Android، تمت إزالة مكتبة android.test.base إذا كان التطبيق لا يعتمد على android.test.runner (لأنّه يعتمد على فئات من مكتبة android.test.base).

REQUEST_ACCESSIBILITY_BUTTON_CHANGE

معرّف التغيير: 136293963

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى خدمات تسهيل الاستخدام التي تستهدف الإصدار 11 من نظام التشغيل Android، يجب الآن تحديد العلامة FLAG_REQUEST_ACCESSIBILITY_BUTTON في ملف البيانات الوصفية لخدمة تسهيل الاستخدام. وبخلاف ذلك، يتم تجاهل العلامة.

لمزيد من المعلومات عن هذا التغيير، يُرجى الاطّلاع على مقالة الإفصاح عن استخدام زر "أدوات تسهيل الاستخدام" فيملف البيانات الوصفية.

RESOURCES_ARSC_COMPRESSED

رقم تعريف التغيير: ‎132742131

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

لا يمكن تثبيت التطبيقات التي تستهدف الإصدار 11 من Android (المستوى 30 لواجهة برمجة التطبيقات) إذا كانت تحتوي على ملف resources.arsc مضغوط أو إذا لم يكن هذا الملف مُحاذاً على حدود 4 بايت.

لمزيد من المعلومات عن هذا التغيير، يُرجى الاطّلاع على ملفّات موارد المضغوطة.

RESTRICT_STORAGE_ACCESS_FRAMEWORK

معرّف التغيير: 141600225

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

إذا كان تطبيقك يستهدف الإصدار 11 من نظام التشغيل Android ويستخدم إطار عمل الوصول إلى التخزين (SAF)، لن تتمكّن بعد الآن من الوصول إلى أدلة معيّنة باستخدام إجراءات البث ACTION_OPEN_DOCUMENT و ACTION_OPEN_DOCUMENT_TREE. لمزيد من المعلومات عن هذه التغييرات، يُرجى الاطّلاع على قسم قيود الوصول إلى المستندات في الصفحة التي تتناول تعديلات الخصوصية المتعلقة بمساحة التخزين في Android 11.

SELINUX_LATEST_CHANGES

معرّف التغيير: 143539591

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

يفرض هذا التغيير قيودًا على وصول التطبيقات إلى نطاق SELinux untrusted_app_R-targetSDk. هذا هو أحد التغييرات الأساسية في إطار عمل التوافق الذي يسمح للتطبيقات بتبديل التغييرات الأخرى التي تفرضها targetSdkVersion بدون تغيير targetSDKVersion التطبيق. لهذا السبب، يجب عدم إيقاف هذا التغيير في تطبيق يستهدف الإصدار Android 11، وإلا لن يعمل التطبيق.

لا يؤثر هذا التغيير في التطبيقات التي تستخدم رقم تعريف مستخدم مشترَكًا.

THROW_SECURITY_EXCEPTIONS

معرّف التغيير: 147340954

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

قبل الإصدار 11 من نظام التشغيل Android، كانت واجهات برمجة تطبيقات setEnabled تعرِض الخطأ SecurityException فقط في حال حدوث خطأ في الإذن. في الإصدار Android 11، لم يعُد هذا صحيحًا، ويمكن طرح SecurityException لأي عدد من الأسباب، ولا يتم عرض أي منها على المُتصل.

للحفاظ على السلوك الحالي لواجهة برمجة التطبيقات، في حال حدوث خطأ في الإذن القديم أو خطأ في فرض الفاعل لتطبيق لا يستهدف Android 11، يتم إجبار الاستثناء على أن يكون IllegalStateException كان موجودًا في المصدر قبل Android 11.

USE_SET_LOCATION_ENABLED

معرّف التغيير: 117835097

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

لم تعُد تطبيقات المشرف التي تستهدف الإصدار 11 من Android قادرة على استخدام العنصر DevicePolicyManager.setSecureSetting(ComponentName, String, String) لتغيير الإعداد Settings.Secure.LOCATION_MODE الذي سيتم إيقافه نهائيًا. بدلاً من ذلك، يجب استخدام DevicePolicyManager.setLocationEnabled(ComponentName, boolean).