Изменения поведения: все приложения

Платформа Android 17 включает изменения в поведении, которые могут повлиять на ваше приложение. Следующие изменения в поведении применяются ко всем приложениям, работающим на Android 17, независимо от targetSdkVersion . Вам следует протестировать свое приложение, а затем внести в него необходимые изменения для поддержки этих изменений, где это применимо.

Обязательно ознакомьтесь также со списком изменений в поведении, которые затрагивают только приложения, ориентированные на Android 17 .

Безопасность

В Android 17 включены следующие улучшения безопасности устройств и приложений.

используется план амортизации ClearTraffic

В одном из будущих релизов мы планируем отказаться от элемента usesCleartextTraffic . Приложениям, которым необходимо устанавливать незашифрованные (HTTP) соединения, следует перейти на использование файла конфигурации сетевой безопасности , который позволяет указывать, к каким доменам ваше приложение должно устанавливать соединения в открытом виде.

Обратите внимание, что файлы конфигурации сетевой безопасности поддерживаются только для уровней API 24 и выше. Если минимальное значение API вашего приложения ниже 24, вам следует выполнить оба следующих действия:

  • Установите атрибут usesCleartextTraffic в true
  • Используйте файл конфигурации сети.

Если минимальный уровень API вашего приложения равен 24 или выше, вы можете использовать файл сетевой конфигурации, и вам не нужно устанавливать параметр usesCleartextTraffic .

Ограничить неявные URI-гранты

В настоящее время, если приложение запускает интент с URI, содержащим действие Send , SendMultiple или ImageCapture , система автоматически предоставляет целевому приложению права на чтение и запись по этому URI. Мы планируем изменить это поведение в Android 18. Поэтому мы рекомендуем приложениям явно предоставлять соответствующие разрешения по URI, а не полагаться на автоматическое предоставление этих прав системой.

Пользовательский опыт и пользовательский интерфейс системы

В Android 17 внесены следующие изменения, призванные обеспечить более согласованный и интуитивно понятный пользовательский интерфейс.

Восстановление видимости IME по умолчанию после поворота экрана.

Начиная с Android 17, при изменении конфигурации устройства (например, при повороте экрана), если это не обрабатывается самим приложением, предыдущая видимость IME не восстанавливается.

Если в вашем приложении происходит изменение конфигурации, которое оно не обрабатывает, и приложению необходимо, чтобы клавиатура оставалась видимой после этого изменения, вы должны явно запросить это. Вы можете сделать этот запрос одним из следующих способов:

  • Установите атрибут android:windowSoftInputMode в значение stateAlwaysVisible .
  • Запросите экранную клавиатуру программным способом в методе onCreate() вашего Activity или добавьте метод onConfigurationChanged() .

СМИ

В Android 17 внесены следующие изменения в работу с мультимедиа.

Фоновое усиление защиты звука

Начиная с Android 17, аудиофреймворк вводит ограничения на фоновые взаимодействия со звуком, включая воспроизведение аудио, запросы на фокусировку на аудио и API изменения громкости, чтобы гарантировать, что эти изменения инициируются пользователем осознанно.

Если приложение пытается вызвать API для работы со звуком, находясь вне допустимого жизненного цикла, API воспроизведения звука и изменения громкости завершаются с ошибкой без генерации исключения или предоставления сообщения об ошибке. API фокусировки звука завершается с кодом ошибки AUDIOFOCUS_REQUEST_FAILED .

Для получения дополнительной информации, включая стратегии смягчения последствий, см. раздел «Усиление защиты фонового звука» .