Estoy desarrollando una aplicación de alarma. Desde la actividad principal, configuro la alarma usando transmisión. Luego, en onReceive en el receptor de difusión llamo a la actividad que permite al usuario apagar o posponer la alarma ... En esa actividad, al comienzo de onCreate uso estas líneas para activar y desactivar el dispositivo:Activar programáticamente la pantalla en android
final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Esto funciona perfectamente en Samsung Galaxy S2 con Android 2.3.4 pero no funciona en htc con Android 2.3.5. En htc no hace nada, y cuando presiono la pantalla del botón de bloqueo, se desbloquea automáticamente sin que drague el círculo. Es como flag_dissmiss_keygard funciona pero flag_turn_screen_on isnt. ¿Hay alguna otra forma u otra solución para hacer esto?
Lo he probado en Nexus One (2.3.6) y Nexus S (4.1.1) y funciona bastante bien. – nifo
Desarrolladores, te lo ruego: por favor no hagas esto! Solo quiero advertir que deshabilitar el bloqueo de teclas hace lo que dice: evita cualquier PIN o desbloqueo de patrón. Intente presionar prolongadamente el botón de inicio (gingerbread) o el botón de cambio de aplicación (ICS) y verá a qué me refiero. No he tenido inconvenientes al utilizar params de diseño en los teléfonos más populares, y la cantidad de teléfonos Gingerbread disminuye a diario. Por favor reconsidere las banderas de la ventana! –
Hola, @PatrickHorn, puedes especificar un ejemplo de dispositivo en el que esto omite la pantalla de bloqueo del PIN. En mis pruebas puedo mostrar una pantalla al usuario con el mensaje que quiero, y la segunda vez que el usuario intenta golpear a casa o cambiar de aplicación, obtiene la pantalla de ingresar PIN. Entonces me pareció lo suficientemente seguro. – marmor