На этой странице описаны все изменения в поведении приложений, которые были добавлены в платформу совместимости в Android 11 (уровень API 30). Используйте этот список вместе с параметрами разработчика и командами ADB для тестирования и отладки вашего приложения при подготовке к работе с Android 11.
ADD_CONTENT_OBSERVER_FLAGS
Идентификатор изменения : 150939131
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
Для приложений, ориентированных на Android 11, существует новая перегрузка общедоступного API onChange(boolean, Uri, int)
которая включает аргумент целочисленных flags
.
Этот новый метод является общедоступной альтернативой SDK для приложений, которые используют перегруженный метод onChange()
не входящий в состав SDK, который включает в себя целочисленный аргумент userId
.
ADMIN_APP_PASSWORD_COMPLEXITY
Идентификатор изменения : 123562444
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
В приложениях администратора, ориентированных на Android 11, выдается ошибка всякий раз, когда приложение устанавливает требование к паролю, не соответствующее текущему назначенному качеству пароля. Например, если для качества пароля установлено значение DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
, приложение не сможет установить минимальную длину пароля. В этом случае, прежде чем пытаться установить минимальную длину пароля, приложение должно сначала вызвать метод setPasswordQuality()
и только потом вызывать метод setPasswordMinimumLength()
.
Кроме того, когда приложение администратора, предназначенное для Android 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) или выше.
Приложения теперь должны предоставлять веское обоснование каждый раз, когда они запрашивают доступ к местоположению устройства в фоновом режиме.
Чтобы узнать больше об этом изменении, ознакомьтесь с руководством по доступу к фоновому местоположению в Android 11 , в котором обсуждаются изменения конфиденциальности, связанные с местоположением, в Android 11.
CALLBACK_ON_CLEAR_CHANGE
Идентификатор изменения : 119147584
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
Всякий раз, когда вызывается Editor.clear
, теперь выполняется обратный вызов OnSharedPreferenceChangeListener.onSharedPreferenceChanged
с null
ключом.
Дополнительные сведения об этом изменении см. в разделе Изменения обратного вызова для 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
соответственно в файле манифеста. В более ранних версиях Android службы переднего плана автоматически получали возможности камеры и микрофона.
Дополнительные сведения об этом изменении см. в разделе Типы служб переднего плана в Android 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 вашего приложения и значений флага манифеста, отключив это изменение.
Чтобы узнать больше об изменениях в хранилище с ограниченной областью в Android 11, см. раздел Хранилище с ограниченной областью на странице об изменениях в хранилище Android в Android 11.
EMPTY_INTENT_ACTION_CATEGORY
Идентификатор изменения : 151163173
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
Для приложений, ориентированных на Android 11, система теперь выдает ошибку, если action
или category
фильтра намерений представляет собой пустую строку. Ошибка в платформе до Android 11 позволяла пройти этот случай без выдачи ошибки. Обратите внимание, что сюда не входят случаи, когда атрибут имеет значение NULL или отсутствует, поскольку это всегда приводит к ошибке.
FILTER_APPLICATION_QUERY
Идентификатор изменения : 135549675
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
Приложениям теперь необходимо объявить пакеты и намерения, которые они собираются использовать, прежде чем они смогут получить информацию о других приложениях на устройстве. Такие объявления должны быть сделаны с использованием тега <queries>
в манифесте приложения.
Чтобы узнать больше о том, как запрашивать другие установленные приложения и взаимодействовать с ними в Android 11, посетите страницу конфиденциальности видимости пакетов .
FORCE_ENABLE_SCOPED_STORAGE
Идентификатор изменения : Значение: 132649864.
Состояние по умолчанию : отключено для всех приложений.
Все приложения, предназначенные для Android 11, теперь по умолчанию используют хранилище с ограниченной областью и больше не могут отказаться от него .
Однако, если ваше приложение по-прежнему предназначено для Android 10 (уровень API 29) или ниже, вы можете протестировать свое приложение с ограниченным хранилищем, независимо от целевой версии SDK вашего приложения и значений флага манифеста, включив это изменение.
Чтобы узнать больше об изменениях в хранилище с ограниченной областью в Android 11, см. раздел Хранилище с ограниченной областью на странице об изменениях в хранилище 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()
.
ГВП_АСАН
Идентификатор изменения : 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) или выше.
Для приложений, ориентированных на Android 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) или выше.
Приложения, предназначенные для Android 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.base
была удалена, если приложение не зависит от android.test.runner
(поскольку оно зависит от классов из библиотеки 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 и использует Storage Access Framework (SAF) , вы больше не сможете получить доступ к определенным каталогам с помощью действий намерения ACTION_OPEN_DOCUMENT
и ACTION_OPEN_DOCUMENT_TREE
. Чтобы узнать больше об этих изменениях, см. раздел «Ограничения доступа к документам» на странице, где обсуждаются обновления конфиденциальности, связанные с хранилищем в Android 11.
SELINUX_LATEST_CHANGES
Идентификатор изменения : 143539591
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
Это изменение ограничивает доступ приложений к домену SELinux untrusted_app_R-targetSDk. Это одно из фундаментальных изменений в платформе совместимости, которое позволяет приложениям переключать другие изменения, контролируемые targetSdkVersion
, без изменения targetSDKVersion
своего приложения. По этой причине не следует отключать это изменение для приложения, предназначенного для Android 11, иначе приложение не будет работать.
Это изменение не повлияет на приложения, использующие общий идентификатор пользователя.
THROW_SECURITY_EXCEPTIONS
Идентификатор изменения : 147340954
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
До Android 11 SecurityException
вызывалось только API-интерфейсами setEnabled
в случае ошибки разрешения. В Android 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)
.
На этой странице описаны все изменения в поведении приложений, которые были добавлены в платформу совместимости в Android 11 (уровень API 30). Используйте этот список вместе с параметрами разработчика и командами ADB для тестирования и отладки вашего приложения при подготовке к работе с Android 11.
ADD_CONTENT_OBSERVER_FLAGS
Идентификатор изменения : 150939131
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
Для приложений, ориентированных на Android 11, существует новая общедоступная перегрузка API onChange(boolean, Uri, int)
которая включает аргумент целочисленных flags
.
Этот новый метод является общедоступной альтернативой SDK для приложений, которые используют перегруженный метод onChange()
не входящий в состав SDK, который включает в себя целочисленный аргумент userId
.
ADMIN_APP_PASSWORD_COMPLEXITY
Идентификатор изменения : 123562444
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
В приложениях администратора, ориентированных на Android 11, выдается ошибка всякий раз, когда приложение устанавливает требование к паролю, не соответствующее текущему назначенному качеству пароля. Например, если для качества пароля установлено значение DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
, приложение не сможет установить минимальную длину пароля. В этом случае, прежде чем пытаться установить минимальную длину пароля, приложение должно сначала вызвать метод setPasswordQuality()
и только потом вызывать метод setPasswordMinimumLength()
.
Кроме того, когда приложение администратора, предназначенное для Android 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) или выше.
Приложения теперь должны предоставлять веское обоснование каждый раз, когда они запрашивают доступ к местоположению устройства в фоновом режиме.
Чтобы узнать больше об этом изменении, ознакомьтесь с руководством по доступу к фоновому местоположению в Android 11 , в котором обсуждаются изменения конфиденциальности, связанные с местоположением, в Android 11.
CALLBACK_ON_CLEAR_CHANGE
Идентификатор изменения : 119147584
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
При каждом вызове Editor.clear
теперь выполняется обратный вызов OnSharedPreferenceChangeListener.onSharedPreferenceChanged
с null
ключом.
Дополнительные сведения об этом изменении см. в разделе Изменения обратного вызова для 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
соответственно в файле манифеста. В более ранних версиях Android службы переднего плана автоматически получали возможности камеры и микрофона.
Дополнительные сведения об этом изменении см. в разделе Типы служб переднего плана в Android 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 вашего приложения и значений флага манифеста, отключив это изменение.
Чтобы узнать больше об изменениях в хранилище с ограниченной областью в Android 11, см. раздел Хранилище с ограниченной областью на странице об изменениях в хранилище Android в Android 11.
EMPTY_INTENT_ACTION_CATEGORY
Идентификатор изменения : 151163173
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
Для приложений, ориентированных на Android 11, система теперь выдает ошибку, если action
или category
фильтра намерений представляет собой пустую строку. Ошибка в платформе до Android 11 позволяла пройти этот случай без выдачи ошибки. Обратите внимание: сюда не входят случаи, когда атрибут имеет значение NULL или отсутствует, поскольку это всегда приводит к ошибке.
FILTER_APPLICATION_QUERY
Идентификатор изменения : 135549675
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
Приложениям теперь необходимо объявить пакеты и намерения, которые они собираются использовать, прежде чем они смогут получить информацию о других приложениях на устройстве. Такие объявления должны быть сделаны с использованием тега <queries>
в манифесте приложения.
Чтобы узнать больше о том, как запрашивать другие установленные приложения и взаимодействовать с ними в Android 11, посетите страницу конфиденциальности видимости пакетов .
FORCE_ENABLE_SCOPED_STORAGE
Идентификатор изменения : Значение: 132649864.
Состояние по умолчанию : отключено для всех приложений.
Все приложения, предназначенные для Android 11, теперь по умолчанию используют хранилище с ограниченной областью и больше не могут отказаться от него .
Однако, если ваше приложение по-прежнему предназначено для Android 10 (уровень API 29) или ниже, вы можете протестировать свое приложение с ограниченным хранилищем, независимо от целевой версии SDK вашего приложения и значений флага манифеста, включив это изменение.
Чтобы узнать больше об изменениях в хранилище с ограниченной областью в Android 11, см. раздел Хранилище с ограниченной областью на странице об изменениях в хранилище 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()
.
ГВП_АСАН
Идентификатор изменения : 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) или выше.
Для приложений, ориентированных на Android 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) или выше.
Приложения, предназначенные для Android 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.base
была удалена, если приложение не зависит от android.test.runner
(поскольку оно зависит от классов из библиотеки 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 и использует Storage Access Framework (SAF) , вы больше не сможете получить доступ к определенным каталогам с помощью действий намерения ACTION_OPEN_DOCUMENT
и ACTION_OPEN_DOCUMENT_TREE
. Чтобы узнать больше об этих изменениях, см. раздел «Ограничения доступа к документам» на странице, где обсуждаются обновления конфиденциальности, связанные с хранилищем в Android 11.
SELINUX_LATEST_CHANGES
Идентификатор изменения : 143539591
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
Это изменение ограничивает доступ приложений к домену SELinux untrusted_app_R-targetSDk. Это одно из фундаментальных изменений в платформе совместимости, которое позволяет приложениям переключать другие изменения, контролируемые targetSdkVersion
, без изменения targetSDKVersion
своего приложения. По этой причине не следует отключать это изменение для приложения, предназначенного для Android 11, иначе приложение не будет работать.
Это изменение не повлияет на приложения, использующие общий идентификатор пользователя.
THROW_SECURITY_EXCEPTIONS
Идентификатор изменения : 147340954
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
До Android 11 SecurityException
вызывалось только API-интерфейсами setEnabled
в случае ошибки разрешения. В Android 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)
.
На этой странице описаны все изменения в поведении приложений, которые были добавлены в платформу совместимости в Android 11 (уровень API 30). Используйте этот список вместе с параметрами разработчика и командами ADB для тестирования и отладки вашего приложения при подготовке к работе с Android 11.
ADD_CONTENT_OBSERVER_FLAGS
Идентификатор изменения : 150939131
Состояние по умолчанию : включено для приложений, ориентированных на Android 11 (уровень API 30) или выше.
Для приложений, ориентированных на Android 11, существует новая перегрузка общедоступного API onChange(boolean, Uri, int)
которая включает аргумент целочисленных flags
.
Этот новый метод является общедоступной альтернативой SDK для приложений, которые используют перегруженный метод onChange()
не входящий в состав SDK, который включает в себя целочисленный аргумент userId
.
ADMIN_APP_PASSWORD_COMPLEXITY
Идентификатор изменения : 123562444
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Для приложений администратора, нацеленных на Android 11, добавьте ошибку всякий раз, когда приложение устанавливает требование пароля, которое не имеет отношения к назначенному в настоящее время качество пароля. Например, когда качество пароля устанавливается на DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
, приложение не сможет установить минимальную длину пароля. В этом случае, прежде чем пытаться установить минимальную длину пароля, приложение должно сначала вызовать метод setPasswordQuality()
и только затем вызовать метод setPasswordMinimumLength()
.
Кроме того, когда приложение администратора, нацеленное на Android 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 .
Founal_rationale_change_id
Идентификатор изменения : 147316723
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Приложения теперь должны предоставлять действительное обоснование каждый раз, когда они просят получить доступ к местоположению устройства в фоновом режиме.
Чтобы узнать больше об этом изменении, см. Руководство по тому, как получить доступ к месту фона в Android 11 , в котором обсуждаются изменения конфиденциальности, связанные с местоположением в Android 11.
Callback_on_clear_change
Идентификатор изменения : 119147584
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Всякий раз, null
называется Editor.clear
OnSharedPreferenceChangeListener.onSharedPreferenceChanged
Чтобы узнать больше об этом изменении, см. Изменения обратного вызова для 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)
. Перед этим изменение система вызовет обратно для переключенного OP. После изменения система перезвонит фактически запрошенным OP или всем переключенным OP, если не указан OP.
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
соответственно в файле Manifest. В более ранних версиях Android службы переднего плана автоматически получали возможности камеры и микрофона.
Чтобы узнать больше об этом изменении, см. Типы услуг переднего плана в Android 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, теперь используют хранилище Scoped по умолчанию и больше не могут отказаться от хранения Scoped .
Тем не менее, вы можете протестировать свое приложение без хранения прицелов, независимо от целевой версии SDK вашего приложения и манифестных значений флагов, переключая это изменение.
Чтобы узнать больше об изменениях в хранении Scoped в Android 11, см. Раздел хранения Scoped на странице об изменениях в Android Storage в Android 11.
Empty_intent_action_category
Идентификатор изменения : 151163173
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Для приложений, нацеленных на Android 11, система теперь выбрасывает ошибку, если action
или category
фильтра намерения является пустой строкой. Ошибка на платформе перед Android 11 позволила этому случаю пройти через ошибку. Обратите внимание, что это не включает в себя случаи, когда атрибут является нулевым или отсутствует, так как это всегда устраняло ошибку.
Filter_application_query
Идентификатор изменения : 135549675
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Приложения теперь должны объявить пакеты и намерения, которые они намерены использовать, прежде чем они смогут получить подробную информацию о других приложениях на устройстве. Такие объявления должны быть сделаны с использованием тега <queries>
в манифесте приложения.
Чтобы узнать больше о том, как запрашивать и взаимодействовать с другими установленными приложениями в Android 11, см. Страницу конфиденциальности видимости пакета .
Force_enable_scoped_storage
Идентификатор изменения : значение: 132649864
Состояние по умолчанию : отключено для всех приложений.
Все приложения, нацеленные на Android 11, теперь используют хранилище Scoped по умолчанию и больше не могут отказаться от хранения Scoped .
Однако, если ваше приложение по -прежнему нацелено на Android 10 (уровень 29) или ниже, вы можете протестировать свое приложение с помощью областя с высоте, независимо от целевой версии SDK вашего приложения и значений флагов манифестов, включив это изменение.
Чтобы узнать больше об изменениях в хранении Scoped в Android 11, см. Раздел хранения Scoped на странице об изменениях Android Storage в 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 (уровень 29 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 .
СЛУШАТЬ_CODE_CHANGE
Идентификатор изменения : 147600208
Состояние по умолчанию : включено для приложений, которые нацелены на Android 10 (API -уровень 29) или выше.
Чтобы проверить версию SDK для TelephonyManager.listen(PhoneStateListener, int)
.
Missing_app_tag
Идентификатор изменения : 150776642
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Для приложений, нацеленных на Android 11, теперь ошибочна, когда в файле Manifest в приложении отсутствует 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)
когда процесс нарушения пытается зарегистрировать слишком много слушателей.
Предотвратить_META_REFLECTION_BLACKLIST_ACCESS
Идентификатор изменения : 142365358
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Приложения, нацеленные на Android 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.base
была удалена, если приложение не зависит от android.test.runner
(так как это зависит от классов из библиотеки 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 (уровень 30 API 30), не могут быть установлены, если они содержат сжатый файл resources.arsc
или если этот файл не выровнен на 4-байтовой границе.
Чтобы узнать больше об этом изменении, см. Файлы сжатых ресурсов .
RESTRICT_STORAGE_ACCESS_FRAMEWORD
Идентификатор изменения : 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) или выше.
Это изменение приложений Gates доступа к домену untructed_app_r-targetsdk selinux. Это одно из основополагающих изменений в структуре совместимости, которое позволяет приложениям переключать другие изменения, которые управляются targetSdkVersion
, без изменения targetSDKVersion
их приложения. По этой причине вы не должны отключать это изменение для приложения, которое нацелено на Android 11, или приложение не будет функционировать.
Это изменение не влияет на приложения, которые используют общий идентификатор пользователя.
Throw_security_exceptions
Идентификатор изменения : 147340954
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
До Android 11 SecurityException
будет брошено только API setEnabled
для ошибки разрешения. В Android 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
. Secure.location_Mode. Вместо этого они должны использовать DevicePolicyManager.setLocationEnabled(ComponentName, boolean)
.
На этой странице описывается каждое изменение поведения, влияющего на приложение, которое было добавлено в структуру совместимости в Android 11 (API-уровне 30). Используйте этот список в сочетании с параметрами разработчика и командами ADB для тестирования и отладки вашего приложения при подготовке к Android 11.
Add_content_observer_flags
Идентификатор изменения : 150939131
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Для приложений, предназначенных для Android 11, появилась новая публичная перегрузка API onChange(boolean, Uri, int)
, которая включает в себя аргумент целочисленных flags
.
Этот новый метод является общедоступной альтернативой SDK для приложений, которые используют перегруженный метод не-SDK onChange()
, который включает в себя аргумент Integer userId
.
Admin_app_password_complexity
Идентификатор изменения : 123562444
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Для приложений администратора, нацеленных на Android 11, добавьте ошибку всякий раз, когда приложение устанавливает требование пароля, которое не имеет отношения к назначенному в настоящее время качество пароля. Например, когда качество пароля устанавливается на DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
, приложение не сможет установить минимальную длину пароля. В этом случае, прежде чем пытаться установить минимальную длину пароля, приложение должно сначала вызовать метод setPasswordQuality()
и только затем вызовать метод setPasswordMinimumLength()
.
Кроме того, когда приложение администратора, нацеленное на Android 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 .
Founal_rationale_change_id
Идентификатор изменения : 147316723
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Приложения теперь должны предоставлять действительное обоснование каждый раз, когда они просят получить доступ к местоположению устройства в фоновом режиме.
Чтобы узнать больше об этом изменении, см. Руководство по тому, как получить доступ к месту фона в Android 11 , в котором обсуждаются изменения конфиденциальности, связанные с местоположением в Android 11.
Callback_on_clear_change
Идентификатор изменения : 119147584
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Всякий раз, null
называется Editor.clear
OnSharedPreferenceChangeListener.onSharedPreferenceChanged
Чтобы узнать больше об этом изменении, см. Изменения обратного вызова для 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)
. Перед этим изменение система вызовет обратно для переключенного OP. После изменения система перезвонит фактически запрошенным OP или всем переключенным OP, если не указан OP.
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
соответственно в файле Manifest. В более ранних версиях Android службы переднего плана автоматически получали возможности камеры и микрофона.
Чтобы узнать больше об этом изменении, см. Типы услуг переднего плана в Android 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, теперь используют хранилище Scoped по умолчанию и больше не могут отказаться от хранения Scoped .
Тем не менее, вы можете протестировать свое приложение без хранения прицелов, независимо от целевой версии SDK вашего приложения и манифестных значений флагов, переключая это изменение.
Чтобы узнать больше об изменениях в хранении Scoped в Android 11, см. Раздел хранения Scoped на странице об изменениях Android Storage в Android 11.
Empty_intent_action_category
Идентификатор изменения : 151163173
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Для приложений, нацеленных на Android 11, система теперь выбрасывает ошибку, если action
или category
фильтра намерения является пустой строкой. Ошибка на платформе перед Android 11 позволила этому случаю пройти через ошибку. Обратите внимание, что это не включает в себя случаи, когда атрибут является нулевым или отсутствует, так как это всегда устраняло ошибку.
Filter_application_query
Идентификатор изменения : 135549675
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Приложения теперь должны объявить пакеты и намерения, которые они намерены использовать, прежде чем они смогут получить подробную информацию о других приложениях на устройстве. Такие объявления должны быть сделаны с использованием тега <queries>
в манифесте приложения.
Чтобы узнать больше о том, как запрашивать и взаимодействовать с другими установленными приложениями в Android 11, см. Страницу конфиденциальности видимости пакета .
Force_enable_scoped_storage
Идентификатор изменения : значение: 132649864
Состояние по умолчанию : отключено для всех приложений.
Все приложения, нацеленные на Android 11, теперь используют хранилище Scoped по умолчанию и больше не могут отказаться от хранения Scoped .
Однако, если ваше приложение по -прежнему нацелено на Android 10 (уровень 29) или ниже, вы можете протестировать свое приложение с помощью областя с высоте, независимо от целевой версии SDK вашего приложения и значений флагов манифестов, включив это изменение.
Чтобы узнать больше об изменениях в хранении Scoped в Android 11, см. Раздел хранения Scoped на странице об изменениях Android Storage в 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 (уровень 29 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 .
СЛУШАТЬ_CODE_CHANGE
Идентификатор изменения : 147600208
Состояние по умолчанию : включено для приложений, которые нацелены на Android 10 (API -уровень 29) или выше.
Чтобы проверить версию SDK для TelephonyManager.listen(PhoneStateListener, int)
.
Missing_app_tag
Идентификатор изменения : 150776642
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Для приложений, нацеленных на Android 11, теперь ошибочна, когда в файле Manifest в приложении отсутствует 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)
когда процесс нарушения пытается зарегистрировать слишком много слушателей.
Предотвратить_META_REFLECTION_BLACKLIST_ACCESS
Идентификатор изменения : 142365358
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
Приложения, нацеленные на Android 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.base
была удалена, если приложение не зависит от android.test.runner
(так как это зависит от классов из библиотеки 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 (уровень 30 API 30), не могут быть установлены, если они содержат сжатый файл resources.arsc
или если этот файл не выровнен на 4-байтовой границе.
Чтобы узнать больше об этом изменении, см. Файлы сжатых ресурсов .
RESTRICT_STORAGE_ACCESS_FRAMEWORD
Идентификатор изменения : 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) или выше.
Это изменение приложений Gates доступа к домену untructed_app_r-targetsdk selinux. Это одно из основополагающих изменений в структуре совместимости, которое позволяет приложениям переключать другие изменения, которые управляются targetSdkVersion
, без изменения targetSDKVersion
их приложения. По этой причине вы не должны отключать это изменение для приложения, которое нацелено на Android 11, или приложение не будет функционировать.
Это изменение не влияет на приложения, которые используют общий идентификатор пользователя.
Throw_security_exceptions
Идентификатор изменения : 147340954
Состояние по умолчанию : включено для приложений, которые нацелены на Android 11 (API -уровень 30) или выше.
До Android 11 SecurityException
будет брошено только API setEnabled
для ошибки разрешения. В Android 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
. Secure.location_Mode. Вместо этого они должны использовать DevicePolicyManager.setLocationEnabled(ComponentName, boolean)
.