Nesse posto pretendo mostrar como "acordar" a tela do Android quando necessário. Um exemplo de uso seria em uma aplicação que usa alarmes. É meio chato quando um alarme dispara no dispositivo e temos que liga-lo e desbloquear a tela para fazer alguma coisa com o alarme. Bom, aqui vou mostrar como fazer isso ao disparar o alarme, para que quando o usuário pegue o dispositivo, a tela já esteja ligada e desbloqueada. Isso tudo é muito simples. Acompanhem o código abaixo:
public class WakeUpAndroid extends Activity{
private KeyguardManager keyguardManager;
private PowerManager powerManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Disperta a tela
powerManager = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
wakeLock.acquire();
//Desbloqueia a tela
keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
keyguardLock = keyguardManager.newKeyguardLock("TAG");
keyguardLock.disableKeyguard();
}
@Override
public void finish() {
super.finish();
this.release();
}
@Override
public void onBackPressed() {
super.onBackPressed();
this.release();
}
private void release(){
keyguardLock.reenableKeyguard();
if (this.wakeLock.isHeld()) {
this.wakeLock.release();
}
}
}
Após usar o recurso temos que libera-lo, caso contrario quando o dispositivo "adormecer" não será ativado o bloqueio de tela.
Até a próxima! abrassss