Mudanças de comportamento: todos os apps

A plataforma Android 17 inclui mudanças de comportamento que podem afetar seu app. As mudanças a seguir se aplicam a todos os apps quando executados no Android 17, independente da targetSdkVersion. Teste o app e modifique-o conforme necessário para oferecer suporte a essas mudanças, se aplicável.

Consulte também a lista de mudanças de comportamento que afetam apenas os apps destinados ao Android 17.

Segurança

O Android 17 inclui as seguintes melhorias na segurança de dispositivos e apps.

Plano de descontinuação de usesClearTraffic

Em uma versão futura, planejamos descontinuar o elemento usesCleartextTraffic. Os apps que precisam fazer conexões não criptografadas (HTTP) devem migrar para usar um arquivo de configuração de segurança de rede, que permite especificar a quais domínios o app precisa fazer conexões de texto não criptografado.

Os arquivos de configuração de segurança de rede só são compatíveis com níveis de API 24 e mais recentes. Se o nível mínimo da API do app for inferior a 24, faça ambos os procedimentos a seguir:

  • Defina o atributo usesCleartextTraffic como true.
  • Usar um arquivo de configuração de rede

Se o nível mínimo da API do app for 24 ou mais recente, você poderá usar um arquivo de configuração de rede e não precisará definir usesCleartextTraffic.

Restringir concessões implícitas de URI

No momento, se um app iniciar uma intent com um URI que tenha a ação Send, SendMultiple ou ImageCapture, o sistema vai conceder automaticamente as permissões de leitura e gravação de URI ao app de destino. Planejamos mudar esse comportamento no Android 18. Por isso, recomendamos que os apps concedam explicitamente as permissões de URI relevantes em vez de depender do sistema para concedê-las.

Experiência do usuário e interface do sistema

O Android 17 inclui as seguintes mudanças que visam criar uma experiência do usuário mais consistente e intuitiva.

Como restaurar a visibilidade padrão do IME após a rotação

A partir do Android 17, quando a configuração do dispositivo muda (por exemplo, por rotação) e isso não é processado pelo próprio app, a visibilidade anterior do IME não é restaurada.

Se o app passar por uma mudança de configuração que não é processada e precisar que o teclado fique visível após a mudança, você precisará solicitar isso explicitamente. Você pode fazer essa solicitação de uma das seguintes maneiras:

  • Defina o atributo android:windowSoftInputMode como stateAlwaysVisible.
  • Solicite o teclado virtual de forma programática no método onCreate() da sua atividade ou adicione o método onConfigurationChanged().

Mídia

O Android 17 inclui as seguintes mudanças no comportamento de mídia.

Proteção de áudio em segundo plano

Beginning with Android 17, the audio framework enforces restrictions on background audio interactions including audio playback, audio focus requests, and volume change APIs to ensure that these changes are started intentionally by the user.

If the app tries to call audio APIs while the app is not in a valid lifecycle, the audio playback and volume change APIs fail silently without throwing an exception or providing a failure message. The audio focus API fails with the result code AUDIOFOCUS_REQUEST_FAILED.

For more information, including mitigation strategies, see Background audio hardening.