این صفحه هر تغییر رفتاری تأثیرگذار بر برنامه را که به چارچوب سازگاری در اندروید ۱۱ (سطح API ۳۰) اضافه شده است، شرح میدهد. از این لیست به همراه گزینههای توسعهدهنده و دستورات ADB برای آزمایش و اشکالزدایی برنامه خود در هنگام آمادهسازی برای هدف قرار دادن اندروید ۱۱ استفاده کنید.
پرچمهای افزودنی محتوا
شناسه تغییر : ۱۵۰۹۳۹۱۳۱
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۱ را هدف قرار میدهند، یک سربارگذاری API عمومی جدید onChange(boolean, Uri, int) وجود دارد که شامل یک آرگومان flags عدد صحیح است.
این متد جدید یک جایگزین عمومی برای SDK برنامههایی است که از متد onChange() که غیر SDK است و شامل یک آرگومان userId از نوع عدد صحیح است، استفاده میکنند.
پیچیدگی رمز عبور برنامه مدیریت
شناسه تغییر : ۱۲۳۵۶۲۴۴
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههای مدیریتی که اندروید ۱۱ را هدف قرار میدهند، هر زمان که برنامه الزام رمز عبوری را تعیین کند که با کیفیت رمز عبور تعیین شده فعلی مرتبط نباشد، خطایی نمایش داده میشود. برای مثال، وقتی کیفیت رمز عبور روی DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED تنظیم شده باشد، یک برنامه قادر به تعیین حداقل طول رمز عبور نخواهد بود. در این حالت، قبل از تلاش برای تعیین حداقل طول رمز عبور، برنامه ابتدا باید متد setPasswordQuality() را فراخوانی کند و تنها پس از آن متد setPasswordMinimumLength() را فراخوانی کند.
علاوه بر این، هنگامی که یک برنامهی مدیریت که اندروید ۱۱ را هدف قرار میدهد، کیفیت رمز عبور را کاهش میدهد، هرگونه الزام رمز عبور موجود که دیگر اعمال نمیشود، به مقادیر پیشفرض خود بازنشانی میشوند.
جداسازی دایرکتوری داده های برنامه
شناسه تغییر : ۱۴۳۹۳۷۷۳۳
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برنامههایی که اندروید ۱۱ را هدف قرار میدهند، دیگر نمیتوانند به فایلهای موجود در دایرکتوریهای دادههای خصوصی هیچ برنامهای، صرف نظر از نسخه SDK هدف برنامه دیگر، دسترسی داشته باشند.
برای کسب اطلاعات بیشتر، به دسترسی به دایرکتوریهای خصوصی مراجعه کنید.
شناسه تغییر مجوز خواندن APN
شناسه تغییر : ۱۲۴۱۰۷۸۰۸
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۱ را هدف قرار میدهند، دسترسی به پایگاه داده APN اکنون به مجوز Manifest.permission.WRITE_APN_SETTINGS نیاز دارد.
برای کسب اطلاعات بیشتر در مورد این تغییر، به دسترسی محدود به خواندن پایگاه داده APN مراجعه کنید.
شناسه تغییر زمینه
شناسه تغییر : ۱۴۷۳۱۶۷۲۳
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
اکنون برنامهها باید هر بار که درخواست دسترسی به موقعیت مکانی دستگاه را در پسزمینه دارند، دلیل موجهی ارائه دهند.
برای کسب اطلاعات بیشتر در مورد این تغییر، به راهنمای نحوه دسترسی به موقعیت مکانی پسزمینه در اندروید ۱۱ مراجعه کنید که تغییرات حریم خصوصی مربوط به موقعیت مکانی در اندروید ۱۱ را مورد بحث قرار میدهد.
تماس مجدد هنگام پاک کردن تغییر
شناسه تغییر : ۱۱۹۱۴۷۵۸۴
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
هر زمان که Editor.clear فراخوانی شود، اکنون یک فراخوانی برگشتی به OnSharedPreferenceChangeListener.onSharedPreferenceChanged با کلید null انجام میشود.
برای کسب اطلاعات بیشتر در مورد این تغییر، به تغییرات فراخوانی برای OnSharedPreferenceChangeListener مراجعه کنید.
تماس مجدد در صورت نیاز به تغییر کد خطا
شناسه تغییر : ۱۳۰۵۹۵۴۵۵
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
کدهای خطا اکنون برای updateAvailableNetworks(List, Executor, Consumer) و setPreferredOpportunisticDataSubscription(int, boolean, Executor, Consumer) گسترش یافتهاند.
تماس_پاسخ_در_هنگام_تغییر_لیست_کننده_با_تغییر_عملیاتی
شناسه تغییر : ۱۴۸۱۸۰۷۶۶
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
این یک تغییر رفتار نامحسوس در startWatchingMode(String, String, AppOpsManager.OnOpChangedListener) است. قبل از این تغییر، سیستم برای عملیات تغییر یافته فراخوانی مجدد انجام میداد. پس از تغییر، سیستم برای عملیات درخواستی واقعی یا در صورت عدم تعیین هیچ عملیاتی، برای همه عملیاتهای تغییر یافته فراخوانی مجدد انجام میدهد.
شناسه تغییر قابلیت_میکروفون_دوربین
شناسه تغییر : ۱۳۶۲۱۹۲۲۱
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۱ را هدف قرار میدهند، سرویسهای پیشزمینه فقط زمانی قابلیتهای دوربین و میکروفون را در حین استفاده دریافت میکنند که R.attr.foregroundServiceType در فایل مانیفست به ترتیب به صورت ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA و ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE پیکربندی شده باشد. در نسخههای قبلی اندروید، سرویسهای پیشزمینه به طور خودکار قابلیتهای دوربین و میکروفون را دریافت میکردند.
برای کسب اطلاعات بیشتر در مورد این تغییر، به انواع سرویسهای پیشزمینه در اندروید ۱۱ مراجعه کنید.
تغییر پسزمینه سفارشی به حالت قبل از اجرا
شناسه تغییر : ۱۲۸۶۱۱۹۲۹
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برنامهها دیگر نمیتوانند Toastهای سفارشی را در پسزمینه ارسال کنند. با این حال، برنامهها همچنان میتوانند با استفاده از متد Toast.makeText(Context, CharSequence, int) و انواع آن در پسزمینه، Toastها را ارسال کنند.
برای کسب اطلاعات بیشتر در مورد این تغییر، به Custom toast views are blocked مراجعه کنید.
قصد تغییر محدودیت SAW
شناسه تغییر : ۱۳۵۹۲۰۱۷۵
حالت پیشفرض : این تغییر قابل تغییر نیست. فقط توسط چارچوب سازگاری ثبت میشود.
اینتنتهایی که از اکشن android.settings.MANAGE_APP_OVERLAY_PERMISSION و طرح URI مربوط به دادههای package استفاده میکنند، دیگر کاربر را به صفحه مخصوص برنامه برای مدیریت مجوزهای مرتبط هدایت نمیکنند. در عوض، کاربر به صفحهای هدایت میشود که در آن میتواند تمام برنامههایی را که درخواست مجوز کردهاند، مدیریت کند.
تغییر_متن_به_دست_آمده_در_سیستم
شناسه تغییر : ۱۴۷۷۹۸۹۱۹
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
متنهای Toast اکنون به جای درون برنامه، توسط SystemUI رندر میشوند. این امر مانع از دور زدن محدودیتهای ارسال متنهای Toast سفارشی در پسزمینه توسط برنامهها میشود.
فضای ذخیرهسازی پیشفرض
شناسه تغییر : ۱۴۹۹۲۴۵۲۷
حالت پیشفرض : برای همه برنامهها فعال است.
همه برنامههایی که اندروید ۱۱ را هدف قرار میدهند، اکنون به طور پیشفرض از فضای ذخیرهسازی محدود استفاده میکنند و دیگر نمیتوانند از این قابلیت انصراف دهند .
با این حال، میتوانید برنامه خود را بدون ذخیرهسازی محدود، صرف نظر از نسخه SDK هدف برنامه و مقادیر پرچم مانیفست، با غیرفعال کردن این تغییر، آزمایش کنید.
برای کسب اطلاعات بیشتر در مورد تغییرات فضای ذخیرهسازی محدود در اندروید ۱۱، به بخش فضای ذخیرهسازی محدود در صفحه مربوط به تغییرات فضای ذخیرهسازی اندروید در اندروید ۱۱ مراجعه کنید.
دستهبندی اقدام با هدف خالی
شناسه تغییر : ۱۵۱۱۶۳۱۷۳
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۱ را هدف قرار میدهند، اگر action یا category فیلتر intent یک رشته خالی باشد، سیستم اکنون خطایی را نشان میدهد. یک اشکال در پلتفرم قبل از اندروید ۱۱ اجازه میداد این مورد بدون نمایش خطا عبور کند. توجه داشته باشید که این شامل مواردی که ویژگی تهی یا مفقود است نمیشود، زیرا همیشه باعث نمایش خطا شده است.
فیلتر_درخواست_برنامه
شناسه تغییر : ۱۳۵۵۴۹۶۷۵
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
اکنون برنامهها قبل از اینکه بتوانند جزئیاتی در مورد سایر برنامههای موجود در دستگاه دریافت کنند، باید بستهها و اهدافی را که قصد استفاده از آنها را دارند، اعلام کنند. چنین اعلانهایی باید با استفاده از برچسب <queries> در مانیفست برنامه انجام شود.
برای کسب اطلاعات بیشتر در مورد نحوه پرس و جو و تعامل با سایر برنامههای نصب شده در اندروید ۱۱، به صفحه حریم خصوصی قابلیت مشاهده بسته مراجعه کنید.
ذخیره سازی اجباری
شناسه تغییر : مقدار: ۱۳۲۶۴۹۸۶۴
حالت پیشفرض : غیرفعال برای همه برنامهها.
همه برنامههایی که اندروید ۱۱ را هدف قرار میدهند، اکنون به طور پیشفرض از فضای ذخیرهسازی محدود استفاده میکنند و دیگر نمیتوانند از این قابلیت انصراف دهند .
با این حال، اگر برنامه شما هنوز اندروید ۱۰ (سطح API 29) یا پایینتر را هدف قرار میدهد، میتوانید برنامه خود را با ذخیرهسازی محدود، صرف نظر از نسخه SDK هدف برنامه و مقادیر پرچم مانیفست، با فعال کردن این تغییر، آزمایش کنید.
برای کسب اطلاعات بیشتر در مورد تغییرات فضای ذخیرهسازی محدود در اندروید ۱۱، به بخش فضای ذخیرهسازی محدود در صفحه مربوط به تغییرات فضای ذخیرهسازی اندروید در اندروید ۱۱ مراجعه کنید.
دریافت_داده_وضعیت_اتصال_نسخه_جدید
شناسه تغییر : ۱۴۸۵۳۵۷۳۶
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای بررسی نسخه SDK مربوط به PreciseDataConnectionState#getDataConnectionState .
دریافت وضعیت داده نسخهٔ فعلی
شناسه تغییر : ۱۴۸۵۳۴۳۴۸
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای بررسی نسخه SDK با استفاده از getDataState() .
استثنائات GET_PROVIDER_SECURITY
شناسه تغییر : ۱۵۰۹۳۵۳۵۴
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، getProvider(String) دیگر هیچ استثنای امنیتی ایجاد نمیکند.
دریافت_هدف_تغییر_نسخه_کد_SDK
شناسه تغییر : ۱۴۵۱۴۷۵۲
حالت پیشفرض : برای برنامههایی که اندروید ۱۰ (سطح API ۲۹) یا بالاتر را هدف قرار میدهند، فعال است.
برای بررسی نسخه SDK مربوط به متد SmsManager.sendResolverResult() .
GWP_ASAN
شناسه تغییر : ۱۳۵۶۳۴۸۴۶
حالت پیشفرض : غیرفعال برای همه برنامهها.
تشخیص اشکالات حافظه بومی نمونهبرداریشده را در برنامهها فعال میکند.
برای کسب اطلاعات بیشتر در مورد این تغییر، به راهنمای GWP-ASan مراجعه کنید.
HIDE_MAXTARGETSDK_P_HIDDEN_APIS
شناسه تغییر : ۱۴۹۹۹۷۲۵۱
حالت پیشفرض : برای برنامههایی که اندروید ۱۰ (سطح API ۲۹) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۰ (سطح API ۲۹) یا بالاتر را هدف قرار میدهند، دسترسی به تمام رابطهای غیر SDK که بخشی از لیست max-target-p ( greylist-max-p ) برای اندروید ۱۰ (سطح API ۲۹) هستند را حذف میکند.
HIDE_MAXTARGETSDK_Q_HIDDEN_APIS
شناسه تغییر : ۱۴۹۹۹۴۰۵۲
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، دسترسی به تمام رابطهای غیر SDK که بخشی از لیست max-target-q ( greylist-max-q ) برای اندروید ۱۱ (سطح API 30) هستند را حذف میکند.
برای کسب اطلاعات بیشتر در مورد این تغییر، به رابطهای غیر SDK که اکنون در اندروید ۱۱ مسدود شدهاند، مراجعه کنید.
تغییر_کد_گوش_کنید
شناسه تغییر : ۱۴۷۶۰۰۲۰۸
حالت پیشفرض : برای برنامههایی که اندروید ۱۰ (سطح API ۲۹) یا بالاتر را هدف قرار میدهند، فعال است.
برای بررسی نسخه SDK مربوط به TelephonyManager.listen(PhoneStateListener, int) .
برچسب_برنامه_ناموجود
شناسه تغییر : ۱۵۰۷۷۶۶۴۲
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۱ را هدف قرار میدهند، اکنون وقتی فایل مانیفست برنامه فاقد تگ application یا instrumentation باشد، خطایی نمایش داده میشود.
برچسبگذاری NATIVE_HEAP_POINTER
شناسه تغییر : ۱۳۵۷۵۴۹۵۴
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۱ را هدف قرار میدهند، تخصیصهای هیپ بومی اکنون دارای یک برچسب غیر صفر در بایت با ارزشتر هستند.
برای کسب اطلاعات بیشتر، به برچسبگذاری اشارهگر هیپ مراجعه کنید.
شناسه_تغییر_محدودیت_شرح_وضعیت_تلفن
شناسه تغییر : ۱۵۰۸۸۰۵۵۳
حالت پیشفرض : برای همه برنامهها فعال است.
برای برنامههایی که اندروید ۱۱ را هدف قرار میدهند، اکنون محدودیتی در تعداد اشیاء PhoneStateListener وجود دارد که هر فرآیند میتواند از طریق TelephonyManager.listen(PhoneStateListener, int) ثبت کند. محدودیت پیشفرض ۵۰ است که ممکن است با بهروزرسانیهای پیکربندی دستگاه از راه دور تغییر کند. این محدودیت با استفاده از یک IllegalStateException که توسط TelephonyManager.listen(PhoneStateListener, int) ایجاد میشود، اعمال میشود، زمانی که فرآیند متخلف سعی میکند تعداد زیادی شنونده ثبت کند.
جلوگیری از دسترسی به لیست سیاه بازتاب متا
شناسه تغییر : ۱۴۲۳۶۵۳۵۸
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برنامههایی که اندروید ۱۱ را هدف قرار میدهند، دیگر نمیتوانند از یک لایه بازتاب اضافی برای دسترسی به رابطهای غیر SDK که محدود شدهاند، استفاده کنند.
شناسه تغییر قابلیت فرآیند
شناسه تغییر : ۱۳۶۲۷۴۵۹۶
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۱ را هدف قرار میدهند، اکنون میتوان از پرچم Context.BIND_INCLUDE_CAPABILITIES برای انتقال قابلیتهای در حال استفاده از فرآیند کلاینت به یک سرویس محدود استفاده کرد.
حذف_پایه_آزمون_اندروید
شناسه تغییر : ۱۳۳۳۹۶۹۴۶
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای برنامههایی که اندروید ۱۱ را هدف قرار میدهند، اگر برنامه به android.test.runner وابسته نباشد (زیرا به کلاسهایی از کتابخانه android.test.base وابسته است)، کتابخانه android.test.base حذف شده است.
درخواست تغییر دکمه دسترسی
شناسه تغییر : ۱۳۶۲۹۳۹۶۳
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برای سرویسهای دسترسی که اندروید ۱۱ را هدف قرار میدهند، اکنون باید پرچم FLAG_REQUEST_ACCESSIBILITY_BUTTON در فایل فراداده سرویس دسترسی مشخص شود. در غیر این صورت، پرچم نادیده گرفته میشود.
برای کسب اطلاعات بیشتر در مورد این تغییر، به بخش «اعلان کاربرد دکمه دسترسی در فایل فراداده» مراجعه کنید.
منابع_ARSC_فشردهشده
شناسه تغییر : ۱۳۲۷۴۲۱۳۱
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برنامههایی که اندروید ۱۱ (سطح API 30) را هدف قرار میدهند، اگر حاوی فایل فشرده resources.arsc باشند یا اگر این فایل در مرز ۴ بایتی تراز نشده باشد، نمیتوانند نصب شوند.
برای کسب اطلاعات بیشتر در مورد این تغییر، به فایلهای منبع فشرده مراجعه کنید.
چارچوب دسترسی_محدود_ذخیره_سازی
شناسه تغییر : ۱۴۱۶۰۰۲۲۵
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
اگر برنامه شما اندروید ۱۱ را هدف قرار داده و از چارچوب دسترسی به حافظه (SAF) استفاده میکند، دیگر نمیتوانید با استفاده از اکشنهای ACTION_OPEN_DOCUMENT و ACTION_OPEN_DOCUMENT_TREE به دایرکتوریهای خاصی دسترسی داشته باشید. برای کسب اطلاعات بیشتر در مورد این تغییرات، به بخش محدودیتهای دسترسی به اسناد در صفحهای که در مورد بهروزرسانیهای حریم خصوصی مربوط به حافظه در اندروید ۱۱ بحث میکند، مراجعه کنید.
تغییرات اخیر SELINUX
شناسه تغییر : ۱۴۳۵۳۹۵۹۱
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
این تغییر، دسترسی برنامهها به دامنه untrusted_app_R-targetSDk SELinux را مسدود میکند. این یکی از تغییرات اساسی در چارچوب سازگاری است که به برنامهها اجازه میدهد بدون تغییر targetSDKVersion برنامه خود، سایر تغییراتی را که توسط targetSdkVersion مسدود شدهاند، تغییر دهند. به همین دلیل، نباید این تغییر را برای برنامهای که اندروید ۱۱ را هدف قرار میدهد غیرفعال کنید، در غیر این صورت برنامه کار نخواهد کرد.
این تغییر برای برنامههایی که از شناسه کاربری مشترک استفاده میکنند، تأثیری ندارد.
استثنائات امنیتی THROW
شناسه تغییر : ۱۴۷۳۴۰۹۵۴
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
قبل از اندروید ۱۱، یک SecurityException فقط توسط APIهای setEnabled و برای یک خطای مجوز ارسال میشد. در اندروید ۱۱ این دیگر صادق نیست و یک SecurityException میتواند به هر دلیلی ارسال شود که هیچ یک از آنها برای فراخواننده آشکار نیست.
برای حفظ رفتار API موجود، اگر یک خطای مجوز قدیمی یا خطای اجرای عامل برای برنامهای که اندروید ۱۱ را هدف قرار نمیدهد رخ دهد، استثنا به یک IllegalStateException که قبل از اندروید ۱۱ در منبع وجود داشته است، تبدیل میشود.
استفاده از موقعیت مکانی فعال
شناسه تغییر : ۱۱۷۸۳۵۰۹۷
حالت پیشفرض : برای برنامههایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار میدهند، فعال است.
برنامههای مدیریتی که اندروید ۱۱ را هدف قرار میدهند، دیگر نمیتوانند از DevicePolicyManager.setSecureSetting(ComponentName, String, String) برای تغییر تنظیم منسوخشدهی Settings.Secure.LOCATION_MODE استفاده کنند. در عوض، آنها باید از DevicePolicyManager.setLocationEnabled(ComponentName, boolean) استفاده کنند.