É 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:
Chame
PowerManager.newWakeLock()
para criar um bloqueio de ativação. Isso cria e configura um objetoPowerManager.WakeLock
, mas não mantém o dispositivo ativo.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.