Android Dev BR
Published in

Android Dev BR

Guia rápido de alarmes no Android 12

Alarm clock lying on multicolored surface por Black ice

O que é essa permissão?

Essa nova permissão de alarme exato (SCHEDULE_EXACT_ALARM) surgiu com o objetivo de economizar recursos de sistema. Alarmes que precisam ser executados em um horário exato podem ser executados enquanto o celular está em economia de energia ou no modo Soneca, fazendo o app gastar mais bateria do que deveria.

Quando eu devo usar essa tipo de alarme exato?

O Google recomenda que esse tipo alarme seja utilizado apenas em duas situações:

  • O app é um despertador ou temporizador
  • O app tem eventos de ação com precisão, como notificações de tarefas e eventos

Que tipo de permissão é essa?

Essa permissão é do tipo “Acesso especial a apps” (Special app access). Você consegue encontrá-las em Configurações > Apps > Acesso especial a apps > Alarmes e lembretes. Essa permissão já é dada no momento da instalação do app. Para o usuário revogá-la, ele precisa ir nessa tela e fazer manualmente.

O que acontece quando o usuário desabilita essa permissão?

Primeiramente, todos os alarmes exatos já criados são deletados e não irão funcionar. Além disso, caso alguma função seja chamada configurando um alarme exato, o aplicativo irá encerrar (crashar) com uma exceção do tipo SecurityException.

Meu app usa AlarmManager, preciso mudar alguma coisa?

Depende. Se o aplicativo usar os métodos do AlarmManager que definem um alarme exato será necessário algumas mudanças. Os métodos que definem esse tipo de alarme são:

  • setAlarmClock()
  • setExact()
  • setExactAndAllowWhileIdle()

Meu app usa WorkManager, preciso alterar alguma coisa?

Não. O WorkManager foi desenvolvido respeitando as otimizações do sistema e não há garantias que ele será executado no exato momento que foi configurado. Essa nova regra se aplica somente a métodos exatos do AlarmManager.

O que eu preciso fazer no meu app para me adequar?

São necessários alguns passos para continuar usando alarmes exatos no Android 12, assim como alguns cuidados para manter a estabilidade do seu aplicativo.

E agora?

As mudanças no geral são bem simples de serem feitas, mas é essencial uma boa testagem já que elas podem impactar bastante a usabilidade do seu aplicativo.

Materiais externos

Vou deixar uma lista de documentações oficiais do Android com mais detalhes dessa e de outras alterações necessárias para o Android 12.

--

--

Artigos em português sobre Android, curados pela comunidade Android Dev BR. Junte-se a nós: https://androiddevbr.org/.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Igor Escodro

Passionate Android developer | Google Developer Expert for Android