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
usesCleartextTrafficcomotrue. - 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:windowSoftInputModecomostateAlwaysVisible. - Solicite o teclado virtual de forma programática no método
onCreate()da sua atividade ou adicione o métodoonConfigurationChanged().
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.