Encender la pantalla mediante progtwigción

Me gustaría desbloquear la pantalla y encenderla para mostrar una ventana emergente en un activador de evento. Puedo desbloquear la pantalla usando

newKeyguardLock = km.newKeyguardLock(HANDSFREE); newKeyguardLock.disableKeyguard(); 

en KeyGuardService pero no puedo encender la pantalla. estoy usando

 wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, HANDSFREE); wl.acquire(); 

pero sin éxito La pantalla aún permanece apagada. ¿Cómo puedo conseguir esto?

La respuesta de Amir me acercó, pero necesitas la bandera ACQUIRE_CAUSES_WAKEUP al menos (Construyendo contra Android 2.3.3).

 WakeLock screenLock = ((PowerManager)getSystemService(POWER_SERVICE)).newWakeLock( PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG"); screenLock.acquire(); //later screenLock.release(); 

En su actividad principal, OnCreate () escribe el siguiente código:

 ((PowerManager)getSystemService(POWER_SERVICE)).newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG").acquire(); 

Hace que el dispositivo se despierte.

No olvide deshabilitarKeyguard () para desbloquear el dispositivo …

respuesta indefinida con verificación NullPointer y establecer tiempo de espera:

 private void turnOnScreen() { PowerManager.WakeLock screenLock = null; if ((getSystemService(POWER_SERVICE)) != null) { screenLock = ((PowerManager)getSystemService(POWER_SERVICE)).newWakeLock( PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG"); screenLock.acquire(10*60*1000L /*10 minutes*/); screenLock.release(); } } 

Esta es una pregunta muy popular, pero la respuesta aceptada ahora está desactualizada .

A continuación se muestra la última forma de encender la pantalla O bien, activar la pantalla de su dispositivo de una actividad:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { this.setTurnScreenOn(true); } else { final Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); } 

Use WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON, pero el indicador FLAG_TURN_SCREEN_ON ha quedado obsoleto en el nivel API 27, por lo que puede usar Activity.setTurnScreenOn (verdadero) desde el nivel API 27 en adelante.

Tengo el mismo problema. Como estos chicos discutieron aquí , hay una API oculta para activar / desactivar la pantalla, consulte: https://android.googlesource.com/platform/frameworks/base/+/froyo-release/core/java/android/os/ Power.java

Pero no sé cómo llamarlo. De hecho, he visto que una aplicación puede activar la pantalla, preguntándose si es específica del dispositivo.