Recibo una notificación de C2DM entrante mientras la pantalla está bloqueada. Me gustaría reactivar la pantalla y mostrar el mensaje de notificación en la parte superior de la pantalla de bloqueo mediante una Actividad. Estoy lanzando la Actividad de la notificación de mi C2DM BroadcastReceiver de la siguiente manera:Cómo creo una actividad que esté visible en la parte superior de la pantalla de bloqueo
Intent new_intent= new Intent().setClass(context, EIAlertDialog.class);
new_intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
new_intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(new_intent);
y dentro método onCreate de la Actividad de la notificación, que active la pantalla de la siguiente manera:
PowerManager powerManager= (PowerManager)getSystemService(Context.POWER_SERVICE);
if (!powerManager.isScreenOn()) {
mWakeLock= powerManager.newWakeLock(
PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP,
"My Tag")
mWakeLock.acquire();
}
La pantalla es despertado, pero la actividad de notificación no está visible hasta que desbloquee la pantalla.
Me doy cuenta de que puedo evitar la pantalla de bloqueo con el siguiente código, pero eso no es lo deseado. Quiero que el usuario desbloquee el teléfono, solo si él/ella está interesado en leer/responder a la notificación.
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
);
Parece que está usando Android.Sería una buena idea agregar la etiqueta de Android para que más personas puedan ver su pregunta. – f20k
@ f20k, sí, es Android, thx –