Mostrar diálogo con eventos táctiles sobre lockscreen en Android 2.3

Quiero crear un diálogo que sea visible en la pantalla de bloqueo y que pueda recibir eventos táctiles. Construí una ventana con WindowManager pero sólo se muestra el indicador TYPE_SYSTEM_OVERLAY en la pantalla de bloqueo en GB (Android 2.3.7).

¿Hay una manera de crear una superposición del sistema que sea visible en la lockscreen y pueda recibir acontecimientos del tacto en Android 2.3.7?

Hubo un error con FLAG_WATCH_OUTSIDE_TOUCH pero no estoy seguro de cómo me afecta. ¿Algunas ideas?

No creo que se puede iniciar una actividad cada vez que el dispositivo está bloqueado sin obligar a su aplicación como administrador de la aplicación privilaged programatically.

Una vez que tu aplicación es administrada por administrador, puedes programar la contraseña y bloquear la pantalla y luego desbloquearla mediante programación mediante Device Policy Manager .

En la parte superior de la pantalla de bloqueo que usted puede programaticamente iniciar su propia actividad y puede crear su propio unlocker y desbloquear el dispositivo a través de esa actividad como usted puede obtener llamadas de vuelta a través de DeviceAdminReceiver .

Aquí hay un buen ejemplo para eso y todo lo que necesitas es crear tu propia actividad después de llamar a DevicePolicyManager.lockNow (). Entonces aparecerá en la parte superior de la pantalla de bloqueo como la actividad normal, además de control adicional sobre lockscreen nativo.

Prueba esto Puede ayudarte,

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); setContentView(R.layout.alertdialog); 

Y también, Android es un poco de una contradicción. Es muy abierto y como desarrollador tienes acceso a cualquier cosa, y depende de ti usar esos poderes para bien o para mal. Cuando digo mal no me refiero al malware. Me refiero a las aplicaciones que tratan de obtener linda y utilizar las cosas de manera que no estaban destinados a ser utilizados, como poner en las notificaciones pidiendo que utilice la aplicación más. La contradicción es que en realidad no tienes acceso a todo, hay algunas partes que los desarrolladores decidieron que eran tan importantes que la aplicación no podía meterse con ellos. La pantalla de bloqueo es una de esas partes. Puedes reemplazar tu aplicación de inicio todo lo que quieras, pero nunca tendrás que preocuparte por la falla de tu pantalla de bloqueo de reemplazo y evitar que accedas a tu teléfono.

Incluso si esto fuera posible tendrías más problemas para tratar. Cada pantalla de bloqueo es diferente, los fabricantes pueden y lo personalizan para que no tenga garantías de que su actividad no interfiera en el desbloqueo del teléfono.

Para tocar fuera de su diálogo,

 dialog.setCanceledOnTouchOutside(your boolean); 

Finalmente logré lo mismo. No vaya para la actividad, porque androide no mostrará la pantalla de bloqueo detrás de su actividad por razones de seguridad, por lo que para el servicio.

A continuación se muestra mi código en onStartCommand de mi servicio

 WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE); View mView = mInflater.inflate(R.layout.score, null); WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0, WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON /* | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON */, PixelFormat.RGBA_8888); mWindowManager.addView(mView, mLayoutParams); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.