Atualize a versão do SDK de destino do app para o Wear OS 4

Depois de atualizar o app como preparação para o Wear OS 4, você pode melhorar ainda mais a compatibilidade com essa versão do Wear OS direcionando-o ao Android 13 (nível 33 da API).

Se você atualizar a versão do SDK de destino, processe as mudanças de comportamento do sistema que entram em vigor para apps direcionados ao Android 12 ou mais recente e para apps direcionados ao Android 13 ou mais recente. Considere principalmente as mudanças nas permissões e nos componentes do app e comportamento de navegação, que são descritas mais adiante neste guia.

Atualizar o arquivo de build

Para atualizar a versão do SDK de destino, abra o arquivo build.gradle ou build.gradle.kts do módulo e atualize-o com valores para o Android 13.

A formatação dos valores no arquivo de build depende da versão do Plug-in do Android para Gradle (AGP) que você está usando.

AGP 7.0.0 ou versões mais recentes

Se você estiver usando o AGP 7.0.0 ou versões mais recentes, atualize o arquivo build.gradle ou build.gradle.kts do app com os valores abaixo para o Android 13:

Groovy

android {
    compileSdk 33
    ...
    defaultConfig {
        targetSdk 33
    }
}

Kotlin

android {
    compileSdk = 33
    ...
    defaultConfig {
        targetSdk = 33
    }
}

AGP 4.2.0 ou versões anteriores

Se você estiver usando o AGP 4.2.0 ou versões anteriores, atualize o arquivo build.gradle ou build.gradle.kts do app com os valores abaixo para o Android 13:

Groovy

android {
    compileSdkVersion "33"
    ...
    defaultConfig {
        targetSdkVersion "33"
    }
}

Kotlin

android {
    compileSdkVersion = "33"
    ...
    defaultConfig {
        targetSdkVersion = "33"
    }
}

Mudanças nas permissões

Esta seção lista várias mudanças nas permissões que afetam os apps após serem direcionados ao Android 13.

Permissão de sensores corporais em segundo plano

Para acessar informações de sensores corporais comuns, como frequência cardíaca, em segundo plano, peça a permissão BODY_SENSORS_BACKGROUND.

Saiba mais no guia para pedir acesso aos dados de sensores corporais em segundo plano.

Permissão de alarme exato

Para usar alarmes com marcação de tempo precisa, também conhecidos como alarmes exatos, é necessário declarar a permissão USE_EXACT_ALARM ou SCHEDULE_EXACT_ALARM.

A menos que os principais recursos do app dependam de alarmes exatos, como um app de relógio ou agenda, use alarmes imprecisos. A maioria dos apps pode agendar tarefas e eventos usando alarmes imprecisos.

Saiba mais sobre como definir um alarme exato.

Permissões de mídia granulares

Caso seu app precise acessar arquivos de mídia criados por outros apps, peça permissões de mídia granulares, que começam com READ_MEDIA_*, em vez da permissão READ_EXTERNAL_STORAGE. Se o app já tiver recebido a permissão READ_EXTERNAL_STORAGE, o sistema vai conceder as permissões de mídia granulares necessárias automaticamente.

Saiba mais sobre as permissões de mídia granulares.

Mudanças nos componentes e na navegação do app

Esta seção lista várias mudanças nos componentes do app e no comportamento de navegação que afetam os apps após serem direcionados ao Android 13.

Requisitos de exportação de componentes do app

Se o app tiver atividades, serviços ou broadcast receivers que usam filtros de intent, declare explicitamente o atributo android:exported para esses componentes.

Saiba mais sobre a exportação mais segura de componentes.

Especificar a mutabilidade das intents pendentes

É necessário especificar se cada objeto PendingIntent no app é mutável ou imutável. Na maioria dos casos, use objetos PendingIntent imutáveis para proteger a integridade dos dados na intent.

Saiba mais sobre como especificar a mutabilidade de intents pendentes.

Restrições de inicialização de serviços em primeiro plano

Na maioria dos casos, o app não pode iniciar serviços em primeiro plano durante a execução em segundo plano.

Saiba mais sobre as restrições para iniciar um serviço em primeiro plano do segundo plano.

Restrições de trampolim de notificação

Depois que o usuário interage com uma notificação, não é possível chamar startActivity() dentro de um serviço ou broadcast receiver. Esse componente de app intersticial que tem como único recurso o início de uma atividade é conhecido como trampolim de notificações.

Saiba mais sobre as restrições do trampolim de notificações.