این صفحه هر تغییر رفتار تأثیرگذار برنامه را که به چارچوب سازگاری در Android 11 اضافه شده است (سطح API 30) توضیح میدهد. از این لیست همراه با گزینههای توسعهدهنده و دستورات ADB برای آزمایش و اشکالزدایی برنامه خود هنگام آماده شدن برای هدف قرار دادن اندروید 11 استفاده کنید.
ADD_CONTENT_OBSERVER_FLAGS
شناسه تغییر : 150939131
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههایی که اندروید 11 را هدف قرار میدهند، یک API عمومی جدید اضافه بار onChange(boolean, Uri, int)
وجود دارد که شامل یک آرگومان flags
عدد صحیح است.
این روش جدید یک جایگزین SDK عمومی برای برنامههایی است که از روش overloaded onChange()
غیر SDK استفاده میکنند که شامل یک آرگومان userId
عدد صحیح است.
ADMIN_APP_PASSWORD_COMPLEXITY
شناسه تغییر : 123562444
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههای سرپرستی که Android 11 را هدف قرار میدهند، هر زمان که برنامهای گذرواژهای را تعیین میکند که به کیفیت گذرواژه اختصاصدادهشده در حال حاضر مرتبط نیست، خطایی ایجاد کنید. به عنوان مثال، وقتی کیفیت رمز عبور روی DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
تنظیم می شود، برنامه نمی تواند حداقل طول گذرواژه را تنظیم کند. در این حالت، قبل از تلاش برای تعیین حداقل طول رمز عبور، برنامه ابتدا باید متد setPasswordQuality()
و تنها سپس متد setPasswordMinimumLength()
فراخوانی کند.
علاوه بر این، هنگامی که یک برنامه مدیریتی که اندروید 11 را هدف قرار می دهد، کیفیت رمز عبور را کاهش می دهد، هر مورد نیاز رمز عبور موجود که دیگر اعمال نمی شود به مقادیر پیش فرض خود بازنشانی می شود.
APP_DATA_DIRECTORY_ISOLATION
شناسه تغییر : 143937733
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برنامههایی که Android 11 را هدف قرار میدهند، دیگر نمیتوانند به فایلها در فهرست راهنمای دادههای خصوصی هر برنامه دسترسی داشته باشند، صرفنظر از نسخه SDK هدف برنامه دیگر.
برای کسب اطلاعات بیشتر، دسترسی به فهرست های خصوصی را ببینید.
APN_READING_PERMISSION_CHANGE_ID
شناسه تغییر : 124107808
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههایی که Android 11 را هدف قرار میدهند، دسترسی به پایگاه داده APN اکنون به مجوز Manifest.permission.WRITE_APN_SETTINGS
نیاز دارد.
برای کسب اطلاعات بیشتر در مورد این تغییر، دسترسی خواندن محدود به پایگاه داده APN را ببینید.
BACKGROUND_RATIONALE_CHANGE_ID
شناسه تغییر : 147316723
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
اکنون برنامهها باید هر بار که درخواست دسترسی به موقعیت مکانی دستگاه در پسزمینه را دارند، دلیل معتبری ارائه دهند.
برای کسب اطلاعات بیشتر در مورد این تغییر، راهنمای نحوه دسترسی به موقعیت مکانی پسزمینه در اندروید 11 را ببینید که تغییرات حریم خصوصی مربوط به مکان در اندروید 11 را مورد بحث قرار میدهد.
CALLBACK_ON_CLEAR_CHANGE
شناسه تغییر : 119147584
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
هر زمان که Editor.clear
فراخوانی شود، اکنون با یک کلید null
به OnSharedPreferenceChangeListener.onSharedPreferenceChanged
پاسخ تماس داده می شود.
برای کسب اطلاعات بیشتر درباره این تغییر، به تغییرات Callback برای OnSharedPreferenceChangeListener مراجعه کنید.
CALLBACK_ON_MORE_ERROR_CODE_CHANGE
شناسه تغییر : 130595455
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
اکنون کدهای خطا برای updateAvailableNetworks(List, Executor, Consumer)
و setPreferredOpportunisticDataSubscription(int, boolean, Executor, Consumer)
گسترش مییابند.
CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE
شناسه تغییر : 148180766
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
این یک تغییر رفتار ظریف به startWatchingMode(String, String, AppOpsManager.OnOpChangedListener)
. قبل از این تغییر، سیستم برای عملیات سوئیچ شده دوباره فراخوانی کرد. پس از تغییر، سیستم برای عملیات درخواستی واقعی یا تمام عملیات سوئیچ شده در صورتی که هیچ عملیاتی مشخص نشده باشد، تماس خواهد گرفت.
CAMERA_MICROPHONE_CAPABILITY_CHANGE_ID
شناسه تغییر : 136219221
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههایی که Android 11 را هدف قرار میدهند، سرویسهای پیشزمینه فقط زمانی که R.attr.foregroundServiceType
به ترتیب بهعنوان ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA
و ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE
پیکربندی شده باشند، قابلیتهای دوربین و میکروفون در حین استفاده را دریافت میکنند. در نسخه های قبلی اندروید، سرویس های پیش زمینه به طور خودکار قابلیت های دوربین و میکروفون را دریافت می کردند.
برای کسب اطلاعات بیشتر در مورد این تغییر، به انواع خدمات پیش زمینه در اندروید 11 مراجعه کنید.
CHANGE_BACKGROUND_CUSTOM_TOAST_BLOCK
شناسه تغییر : 128611929
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 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 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
نان تست های متنی اکنون به جای درون برنامه توسط SystemUI ارائه می شوند. این امر مانع از دور زدن محدودیتهای ارسال نان تست سفارشی در پسزمینه توسط برنامهها میشود.
DEFAULT_SCOPED_STORAGE
شناسه تغییر : 149924527
حالت پیشفرض : برای همه برنامهها فعال است.
همه برنامههایی که Android 11 را هدف قرار میدهند، اکنون بهطور پیشفرض از فضای ذخیرهسازی محدودهدار استفاده میکنند و دیگر نمیتوانند از فضای ذخیرهسازی محدوده انصراف دهند .
با این حال، بدون در نظر گرفتن نسخه SDK هدف برنامه و مقادیر پرچم مانیفست، با خاموش کردن این تغییر، میتوانید برنامه خود را بدون فضای ذخیرهسازی محدوده آزمایش کنید.
برای کسب اطلاعات بیشتر در مورد تغییرات فضای ذخیره سازی scoped در Android 11، به بخش Scoped storage در صفحه مربوط به تغییرات در فضای ذخیره سازی Android در Android 11 مراجعه کنید.
EMPTY_INTENT_ACTION_CATEGORY
شناسه تغییر : 151163173
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههایی که اندروید 11 را هدف قرار میدهند، اگر action
یا category
فیلتر هدف یک رشته خالی باشد، سیستم اکنون با خطا مواجه میشود. یک باگ در پلتفرم قبل از اندروید 11 به این کیس اجازه می داد تا بدون ایجاد خطا از آن عبور کند. توجه داشته باشید که این موارد شامل مواردی نمی شود که مشخصه تهی یا از دست رفته باشد، زیرا همیشه یک خطا ایجاد می کند.
FILTER_APPLICATION_QUERY
شناسه تغییر : 135549675
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
اکنون برنامهها باید بستهها و اهدافی را که قصد استفاده از آنها را دارند، قبل از اینکه بتوانند جزئیات برنامههای دیگر را در دستگاه دریافت کنند، اعلام کنند. چنین اظهاراتی باید با استفاده از برچسب <queries>
در مانیفست برنامه انجام شود.
برای کسب اطلاعات بیشتر در مورد نحوه پرس و جو و تعامل با سایر برنامه های نصب شده در Android 11، به صفحه حریم خصوصی قابلیت مشاهده بسته مراجعه کنید.
FORCE_ENABLE_SCOPED_STORAGE
شناسه تغییر : مقدار: 132649864
حالت پیشفرض : برای همه برنامهها غیرفعال است.
همه برنامههایی که Android 11 را هدف قرار میدهند، اکنون بهطور پیشفرض از فضای ذخیرهسازی محدودهدار استفاده میکنند و دیگر نمیتوانند از فضای ذخیرهسازی محدوده انصراف دهند .
با این حال، اگر برنامه شما همچنان Android 10 (سطح API 29) یا پایینتر را هدف قرار میدهد، میتوانید با روشن کردن این تغییر، برنامه خود را بدون در نظر گرفتن نسخه SDK هدف برنامه و مقادیر پرچم مانیفست، با فضای ذخیرهسازی محدوده آزمایش کنید.
برای کسب اطلاعات بیشتر در مورد تغییرات فضای ذخیره سازی scoped در Android 11، به بخش Scoped storage در صفحه مربوط به تغییرات در فضای ذخیره سازی Android در Android 11 مراجعه کنید.
GET_DATA_CONNECTION_STATE_R_VERSION
شناسه تغییر : 148535736
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای بررسی نسخه SDK برای PreciseDataConnectionState#getDataConnectionState
.
GET_DATA_STATE_R_VERSION
شناسه تغییر : 148534348
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای بررسی نسخه SDK برای getDataState()
.
GET_PROVIDER_SECURITY_EXCEPTIONS
شناسه تغییر : 150935354
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند، getProvider(String)
دیگر هیچ استثنای امنیتی ایجاد نمیکند.
GET_TARGET_SDK_VERSION_CODE_CHANGE
شناسه تغییر : 145147528
حالت پیشفرض : برای برنامههایی که Android 10 (سطح API 29) یا بالاتر را هدف قرار میدهند فعال است.
برای بررسی نسخه SDK برای متد SmsManager.sendResolverResult()
.
GWP_ASAN
شناسه تغییر : 135634846
حالت پیشفرض : برای همه برنامهها غیرفعال است.
تشخیص اشکال حافظه بومی نمونه را در برنامه ها فعال می کند.
برای کسب اطلاعات بیشتر در مورد این تغییر، به راهنمای GWP-ASan مراجعه کنید.
HIDE_MAXTARGETSDK_P_HIDDEN_APIS
شناسه تغییر : 149997251
حالت پیشفرض : برای برنامههایی که Android 10 (سطح API 29) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههایی که Android 10 (سطح API 29) یا بالاتر را هدف قرار میدهند، دسترسی به همه رابطهای غیر SDK را که بخشی از فهرست max-target-p
( greylist-max-p
) برای Android 10 (سطح API 29) هستند، حذف میکند.
HIDE_MAXTARGETSDK_Q_HIDDEN_APIS
شناسه تغییر : 149994052
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند، دسترسی به همه رابطهای غیر SDK را که بخشی از فهرست max-target-q
( greylist-max-q
) برای Android 11 (سطح API 30) هستند، حذف میکند.
برای کسب اطلاعات بیشتر در مورد این تغییر، به رابطهای غیر SDK که اکنون در Android 11 مسدود شدهاند، مراجعه کنید.
LISTEN_CODE_CHANGE
شناسه تغییر : 147600208
حالت پیشفرض : برای برنامههایی که Android 10 (سطح API 29) یا بالاتر را هدف قرار میدهند فعال است.
برای بررسی نسخه SDK برای TelephonyManager.listen(PhoneStateListener, int)
.
MISSING_APP_TAG
شناسه تغییر : 150776642
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههایی که اندروید 11 را هدف قرار میدهند، اکنون زمانی که فایل مانیفست برنامه فاقد برچسب application
یا instrumentation
دقیق باشد، خطایی ایجاد میشود.
NATIVE_HEAP_POINTER_TAGGING
شناسه تغییر : 135754954
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 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 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برنامههایی که اندروید 11 را هدف قرار میدهند دیگر نمیتوانند از یک لایه بازتاب اضافی برای دسترسی به رابطهای غیر SDK که محدود هستند استفاده کنند.
PROCESS_CAPABILITY_CHANGE_ID
شناسه تغییر : 136274596
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههایی که Android 11 را هدف قرار میدهند، اکنون میتوان از پرچم Context.BIND_INCLUDE_CAPABILITIES
برای انتقال قابلیتهای حین استفاده از فرآیند مشتری به یک سرویس محدود استفاده کرد.
REMOVE_ANDROID_TEST_BASE
شناسه تغییر : 133396946
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای برنامههایی که Android 11 را هدف قرار میدهند، اگر برنامه به android.test.runner
وابسته نباشد، کتابخانه android.test.base
حذف شده است (زیرا به کلاسهای کتابخانه android.test.base
بستگی دارد).
REQUEST_ACCESSIBILITY_BUTTON_CHANGE
شناسه تغییر : 136293963
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برای سرویسهای دسترسپذیری که Android 11 را هدف قرار میدهند، اکنون باید پرچم FLAG_REQUEST_ACCESSIBILITY_BUTTON
در فایل فراداده سرویس دسترسپذیری مشخص شود. در غیر این صورت، پرچم نادیده گرفته می شود.
برای کسب اطلاعات بیشتر درباره این تغییر، به اعلام استفاده از دکمه دسترسی در فایل ابرداده مراجعه کنید.
RESOURCES_ARSC_COMPRESSED
شناسه تغییر : 132742131
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برنامههایی که Android 11 (سطح API 30) را هدف قرار میدهند، اگر حاوی فایل فشردهشده resources.arsc
باشند یا اگر این فایل در یک مرز 4 بایتی تراز نشده باشد، نمیتوانند نصب شوند.
برای کسب اطلاعات بیشتر در مورد این تغییر، فایلهای منبع فشرده را ببینید.
RESTRICT_STORAGE_ACCESS_FRAMEWORK
شناسه تغییر : 141600225
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
اگر برنامه شما Android 11 را هدف قرار میدهد و از چارچوب دسترسی به فضای ذخیرهسازی (SAF) استفاده میکند، دیگر نمیتوانید با استفاده از کنشهای هدف ACTION_OPEN_DOCUMENT
و ACTION_OPEN_DOCUMENT_TREE
به فهرستهای راهنمای خاصی دسترسی پیدا کنید. برای کسب اطلاعات بیشتر در مورد این تغییرات، بخش محدودیتهای دسترسی به سند را در صفحهای که بهروزرسانیهای حریم خصوصی مربوط به فضای ذخیرهسازی در Android 11 را مورد بحث قرار میدهد، ببینید.
SELINUX_LATEST_CHANGES
شناسه تغییر : 143539591
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
این تغییر باعث میشود برنامهها به دامنه untrusted_app_R-targetSDk SELinux دسترسی پیدا کنند. این یکی از تغییرات اساسی در چارچوب سازگاری است که به برنامهها اجازه میدهد تا تغییرات دیگری را که توسط targetSdkVersion
بسته شدهاند، بدون تغییر targetSDKVersion
برنامه خود تغییر دهند. به همین دلیل، نباید این تغییر را برای برنامه ای که اندروید 11 را هدف قرار می دهد غیرفعال کنید، در غیر این صورت برنامه کار نخواهد کرد.
این تغییر برای برنامه هایی که از شناسه کاربری مشترک استفاده می کنند تأثیری ندارد.
THROW_SECURITY_EXCEPTIONS
شناسه تغییر : 147340954
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
قبل از Android 11، یک SecurityException
فقط توسط setEnabled
APIها برای خطای مجوز پرتاب می شد. در اندروید 11 این دیگر صادق نیست، و یک SecurityException
میتواند به هر دلیلی ایجاد شود که هیچ یک از آنها در معرض تماس گیرنده قرار نمیگیرد.
برای حفظ رفتار API موجود، اگر برای برنامهای که Android 11 را هدف قرار نمیدهد، نقص مجوز قدیمی یا اجرا نشدن بازیگر رخ دهد، این استثنا به یک IllegalStateException
که در منبع قبل از Android 11 وجود داشت، وادار میشود.
USE_SET_LOCATION_ENABLED
شناسه تغییر : 117835097
حالت پیشفرض : برای برنامههایی که Android 11 (سطح API 30) یا بالاتر را هدف قرار میدهند فعال است.
برنامههای سرپرستی که Android 11 را هدف قرار میدهند، دیگر نمیتوانند از DevicePolicyManager.setSecureSetting(ComponentName, String, String)
برای تغییر تنظیمات منسوخ شده Settings.Secure.LOCATION_MODE
استفاده کنند. در عوض باید از DevicePolicyManager.setLocationEnabled(ComponentName, boolean)
استفاده کنند.