¿Mostrar la actividad (diálogo del tema) arriba del Dialer en lockscreen?

Necesita mostrar la Actividad (diálogo Tema) sobre el marcador con alguna información poblada en actividad como auténtica llamada. En el teléfono desbloqueado, está funcionando bien.

Pero en el teléfono bloqueado, no funcionó como se esperaba. ¿Alguna búsqueda de Google y encontró algunas banderas necesita ser añadido para hacer que el diálogo aparezca en la pantalla de bloqueo.

CallActivity.java

LayoutParams layoutParams = new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, LayoutParams.TYPE_SYSTEM_DIALOG | LayoutParams.TYPE_SYSTEM_ALERT | LayoutParams.TYPE_SYSTEM_OVERLAY, LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_TURN_SCREEN_ON | LayoutParams.FLAG_SHOW_WHEN_LOCKED | LayoutParams.FLAG_KEEP_SCREEN_ON | LayoutParams.FLAG_DISMISS_KEYGUARD, PixelFormat.TRANSLUCENT); getWindow().setAttributes(layoutParams); 

En el código anterior, he añadido cambios relacionados con hacer que la actividad aparezca como diálogo y pocos indicadores (FLAG_TURN_SCREEN_ON, FLAG_SHOW_WHEN_LOCKED, FLAG_KEEP_SCREEN_ON, FLAG_DISMISS_KEYGUARD) relacionado para hacer que el diálogo funcione bien en la pantalla de bloqueo (pero no).

También inicio la actividad con (desde el receptor de difusión)

  Intent intent = new Intent(context, MyActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); context.startActivity(intent); 

One Solution collect form web for “¿Mostrar la actividad (diálogo del tema) arriba del Dialer en lockscreen?”

agregar vista al administrador de ventanas con permiso de System Alert

 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); mParams = new WindowManager.LayoutParams(); mParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; mParams.format = PixelFormat.TRANSLUCENT; mParams.flags = 262184; mWindowManager.addView(view, mParams); 

Nota: si la aplicación se orienta al nivel API 23 o superior, el usuario de la aplicación debe conceder explícitamente este permiso a la aplicación a través de una pantalla de administración de permisos. La aplicación solicita la aprobación del usuario enviando una intención con la acción ACTION_MANAGE_OVERLAY_PERMISSION. La aplicación puede comprobar si tiene esta autorización llamando Settings.canDrawOverlays ().

  • ¿Por qué se debe llamar OnCreate sólo una vez al inicio de la Actividad?
  • Serialización de Android / Transferencia de objetos y devolución
  • ¿Dónde colocar setContentView () en onCreate ()?
  • Suprimir notificaciones de un servicio si la actividad se está ejecutando
  • Obtener actividad de llamada de alguna otra actividad
  • Utilizar actividad o fragmento en la aplicación de Android
  • ¿Cómo pasar una matriz 2D de doble entre las actividades?
  • Espresso - ¿Cómo puedo comprobar si se inicia una actividad después de realizar una determinada acción?
  • SharedPreferences Borrar / Guardar
  • OnSaveInstanceState no se llama después de rotación de pantalla
  • Diapositiva de animación no funciona en el botón de prensa de nuevo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.