¿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 ().

  • Icono del lanzador de aplicaciones que se muestra en la barra de acción de una actividad
  • Google + Iniciar sesión: la actividad no se iniciará
  • ¿Es seguro utilizar Intent.FLAG_ACTIVITY_MULTIPLE_TASK?
  • Cómo detectar si la actividad principal de la vista se está destruyendo
  • Borrar la pila de actividades e iniciar una nueva actividad en android
  • ¿Puedo estar seguro de que la aplicación Android terminó de ejecutarse comprobando isFinish () en OnPause () de la actividad principal?
  • Actividad que solo se inicia una vez después de una nueva instalación?
  • Uso de ResultReceiver en Android
  • Insertar contacto en Android con ContactsContract
  • Filtro de intención pathPrefix con '#' no funciona
  • Cómo pasar los valores de una actividad a actividad anterior
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.