Definir um bloqueio de ativação

É possível definir um bloqueio de ativação para manter o dispositivo ativo temporariamente.

Dependências

O app precisa ter a permissão WAKE_LOCK para definir um bloqueio de desbloqueio. Adicione a permissão ao manifesto do app:

<uses-permission android:name="android.permission.WAKE_LOCK" />

Criar e adquirir um bloqueio de ativação

Para adquirir um bloqueio de ativação, faça o seguinte:

  1. Chame PowerManager.newWakeLock() para criar um bloqueio de ativação. Isso cria e configura um objeto PowerManager.WakeLock, mas não mantém o dispositivo ativo.

  2. Quando você quiser manter o dispositivo ativo, chame o método acquire() do objeto de wake lock.

Por exemplo, se o app incluir um broadcast receiver que usa um serviço para fazer alguns trabalhos, use este código para definir e adquirir um wake lock:

Kotlin

val wakeLock: PowerManager.WakeLock =
    (getSystemService(Context.POWER_SERVICE) as PowerManager).run {
        newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply {
            acquire()
        }
    }

Java

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
        "MyClassName::MyWakelockTag");
wakeLock.acquire();

Pontos principais sobre esse código

Quando o código cria o objeto de bloqueio de ativação, ele usa o nome da classe como parte da tag de bloqueio de ativação. Recomendamos que você inclua o nome do pacote, da classe ou do método como parte da tag de wake lock. Dessa forma, se ocorrer um erro, será mais fácil localizar o bloqueio de ativação no código-fonte. Para mais informações, consulte Nomear o bloqueio de ativação corretamente.

Veja também