Esta é a prévia para desenvolvedores do Android 13. Envie seu feedback e ajude a deixar o Android 13 ainda melhor.

Mudanças de comportamento: apps destinados ao Android 13 ou a versões mais recentes

Como nas versões anteriores, o Android 13 inclui mudanças de comportamento que podem afetar seu app. As mudanças de comportamento abaixo se aplicam exclusivamente a apps destinados ao Android 13 ou versões mais recentes. Caso seu app seja direcionado ao Android 13 ou a versões mais recentes, faça modificações para oferecer suporte a esses comportamentos de forma adequada, quando aplicável.

Consulte também a lista de mudanças de comportamento que afetam todos os apps executados no Android 13.

Privacidade

A permissão de notificação afeta a aparência do serviço em primeiro plano

Se o usuário negar a permissão de notificação, ele ainda vai ver avisos relacionados a esses serviços em primeiro plano no gerenciador de tarefas de serviços em primeiro plano (FGS), mas não na gaveta de notificações.

Nova permissão de execução para dispositivos Wi-Fi por perto

Nas versões anteriores do Android, o usuário precisa conceder ao app a permissão ACCESS_FINE_LOCATION para concluir vários casos de uso comuns de Wi-Fi relacionados a pontos de acesso, conexões Wi-Fi Direct, RTT do Wi-Fi e muito mais.

Como é difícil para os usuários associarem permissões de localização à funcionalidade Wi-Fi, o Android 13 introduz uma nova permissão de execução no grupo de permissões NEARBY_DEVICES para apps que gerenciam as conexões de um dispositivo a pontos de acesso Wi-Fi por perto. A permissão NEARBY_WIFI_DEVICES atende a esses casos de uso do Wi-Fi.

Contanto que o app não receba informações de localização física das APIs de Wi-Fi, solicite NEARBY_WIFI_DEVICES, em vez de ACCESS_FINE_LOCATION, quando o app for destinado ao Android 13 ou a versões mais recentes e use APIs de Wi-Fi. Esse processo é parecido com o que é feito no Android 12 (nível 31 da API) e versões mais recentes ao declarar que as informações do dispositivo Bluetooth nunca são usadas para localização.

Saiba mais sobre a permissão para dispositivos Wi-Fi por perto.

O uso de sensores corporais em segundo plano exige uma nova permissão

O Android 13 introduz o conceito de "acesso durante o uso" para sensores corporais, como frequência cardíaca, temperatura e percentual de oxigênio no sangue. Esse modelo de acesso é bastante parecido com o introduzido pelo sistema para informações de local no Android 10 (nível 29 da API).

Se o app for destinado ao Android 13 e exigir acesso a informações do sensor corporal durante a execução em segundo plano, vai ser necessário declarar a nova permissão BODY_SENSORS_BACKGROUND, além da permissão BODY_SENSORS existente.

Segurança

Filtros de intent bloqueiam intents não correspondentes

Quando o app enviar uma intent para um componente exportado de outro app destinado ao Android 13 ou versões mais recentes, essa intent vai ser entregue somente se ela corresponder a um elemento <intent-filter> no app de destino. Em outras palavras, o sistema bloqueia todas as intents não correspondentes, exceto:

  • Intents enviadas para componentes de outros apps em que esses componentes não declaram filtros de intent.
  • Intents enviadas para outros componentes no seu app.
  • Intents enviadas do sistema.
  • Intents enviadas de um usuário com privilégios no nível raiz.

Exportação mais segura de receptores registrados por contexto

Para ajudar a tornar os receptores de execução mais seguros, o Android 13 permite que você defina se um broadcast receiver específico no app precisa ser exportado e ficar visível para outros apps no dispositivo. Se o broadcast receiver for exportado, outros apps vão poder enviar transmissões desprotegidas ao seu app. Essa configuração de exportação, disponível para apps destinados ao Android 13 ou versões mais recentes, pode ajudar a evitar uma das principais fontes de vulnerabilidades de apps.

Nas versões anteriores do Android, qualquer app no dispositivo podia enviar uma transmissão desprotegida a um receptor registrado dinamicamente, a menos que esse receptor fosse protegido por uma permissão de assinatura.

Para implementar essa medida de melhoria de segurança, faça o seguinte:

  1. Ative a mudança do framework de compatibilidade DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED.
  2. Indique explicitamente em cada broadcast receiver do app se outros apps podem enviar transmissões a ele, conforme mostrado no snippet de código abaixo:

    Kotlin

    // This broadcast receiver should be able to receive broadcasts from other apps.
    // This option causes the same behavior as setting the broadcast receiver's
    // "exported" attribute to true in your app's manifest.
    context.registerReceiver(sharedBroadcastReceiver, intentFilter,
        RECEIVER_EXPORTED)
    
    // For app safety reasons, this private broadcast receiver should **NOT**
    // be able to receive broadcasts from other apps.
    context.registerReceiver(privateBroadcastReceiver, intentFilter,
        RECEIVER_NOT_EXPORTED)

    Java

    // This broadcast receiver should be able to receive broadcasts from other apps.
    // This option causes the same behavior as setting the broadcast receiver's
    // "exported" attribute to true in your app's manifest.
    context.registerReceiver(sharedBroadcastReceiver, intentFilter,
        RECEIVER_EXPORTED);
    
    // For app safety reasons, this private broadcast receiver should **NOT**
    // be able to receive broadcasts from other apps.
    context.registerReceiver(privateBroadcastReceiver, intentFilter,
        RECEIVER_NOT_EXPORTED);

Desempenho e bateria

Uso de recursos da bateria

Se o usuário colocar um app destinado ao Android 13 no estado "restrito" com relação ao uso da bateria em segundo plano, o sistema vai aplicar várias limitações relacionadas a transmissões.

Saiba mais sobre as novas limitações para uso da bateria em segundo plano em estado restrito na página que descreve o uso de recursos da bateria introduzidos no Android 13.