تغييرات إطار عمل التوافق (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()المحمّلة بشكل زائدuserId غير المتوفّرة في حزمة SDK والتي تتضمّن وسيطة عدد صحيح.

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 الوصول إلى الملفات في أدلة البيانات الخاصة لأي تطبيق، بغض النظر عن إصدار حزمة تطوير البرامج (SDK) المستهدَف للتطبيق الآخر.

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

APN_READING_PERMISSION_CHANGE_ID

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

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

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

لمزيد من المعلومات عن هذا التغيير، يُرجى الاطّلاع على حظر طرق العرض المخصّصة للإشعارات المؤقتة.

CHANGE_RESTRICT_SAW_INTENT

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

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

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

CHANGE_TEXT_TOASTS_IN_THE_SYSTEM

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

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

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

DEFAULT_SCOPED_STORAGE

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

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

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

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

لمزيد من المعلومات حول التغييرات التي تم إجراؤها على ميزة "مساحة التخزين المحصورة" في نظام التشغيل Android 11، يُرجى الاطّلاع على قسم مساحة التخزين المحصورة في الصفحة التي تتناول التغييرات التي تم إجراؤها على مساحة التخزين في 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

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

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

ومع ذلك، إذا كان تطبيقك لا يزال يستهدف الإصدار Android 10 (المستوى 29 من واجهة برمجة التطبيقات) أو إصدارًا أقدم، يمكنك اختبار تطبيقك باستخدام ميزة "التخزين المحصور" بغض النظر عن إصدار حزمة تطوير البرامج (SDK) المستهدَف في تطبيقك وقيم العلامات في ملف البيان، وذلك من خلال تفعيل هذا التغيير.

لمزيد من المعلومات حول التغييرات التي تم إجراؤها على ميزة "مساحة التخزين المحصورة" في نظام التشغيل Android 11، يُرجى الاطّلاع على قسم مساحة التخزين المحصورة في الصفحة التي تتناول التغييرات التي تم إجراؤها على مساحة التخزين في 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

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

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

GWP_ASAN

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

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

تتيح هذه السياسة رصد الأخطاء في الذاكرة الأصلية التي تم أخذ عيّنات منها في التطبيقات.

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

HIDE_MAXTARGETSDK_P_HIDDEN_APIS

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

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

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

HIDE_MAXTARGETSDK_Q_HIDDEN_APIS

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

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

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

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

LISTEN_CODE_CHANGE

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

الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار 10 من نظام التشغيل Android (المستوى 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 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

لمزيد من المعلومات، اطّلِع على مقالة وضع علامات على مؤشر الذاكرة المؤقتة.

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 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 11 من نظام التشغيل Android، يمكن الآن استخدام العلامة 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 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

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

THROW_SECURITY_EXCEPTIONS

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

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

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

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

USE_SET_LOCATION_ENABLED

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

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

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