توضِّح هذه الصفحة كل تغيير في السلوك يؤثّر في التطبيقات، والذي تمت إضافته إلى إطار المتوافق في 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)
.