Obtención dinámica del nombre del paquete de pantalla de bloqueo de android

Necesito conseguir el nombre del paquete de la actividad de la pantalla de bloqueo de Android. He googled encontrado nada, excepto https://stackoverflow.com/a/16881064/2803557 que no parece funcionar.

¿Hay alguna manera de obtener el nombre del paquete de pantalla de bloqueo

Puede determinar el nombre del paquete para cualquier Activity que llegue al primer plano analizando los registros de Android. Por ejemplo, si tiene Google Maps abierto, al hacer clic en el botón Inicio del dispositivo, aparecerá esto en el registro (normalmente filmo por la cadena ActivityManager ).

 START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.android.launcher/com.android.launcher2.Launcher} 

Lo que muestra que el nombre del paquete de la Activity de la pantalla de inicio es com.android.launcher

Sin embargo, cuando hago clic en el botón de inicio de Nexus 4 para mostrar la lockscreen desde cualquier aplicación, nunca muestra otra actividad que se está iniciando. Esto me hace pensar que no es lo que entendemos como una Activity típica.

Si observa la fuente de KeyguardViewMediator.java el código fuente de Android, encontrará un método denominado private void doKeyguardLocked(Bundle options) . Sé por experiencia que cambiar la fuente para volver inmediatamente de este método desactivará la lockscreen. La fuente para KeyguardViewMediator.java muestra que está en el paquete com.android.keyguard , y creo que este es el paquete que está buscando.

En cuanto a obtener el nombre del paquete dinámicamente, no me parece posible. Pero, si ya sabe el nombre del paquete con antelación, entonces no hay necesidad de obtenerlo dinámicamente.

Espero que esto ayude.

Obtener la lista de todos los procesos y luego comprobar el nombre del paquete de la aplicación de bloqueo de pantalla.

A continuación se muestra el código:

 ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> services = activityManager.getRunningServices(Integer.MAX_VALUE); long currentMillis = Calendar.getInstance().getTimeInMillis(); Calendar cal = Calendar.getInstance(); for (ActivityManager.RunningServiceInfo info : services) { cal.setTimeInMillis(currentMillis-info.activeSince); Log.i("TAG", String.format("Process %s has been running since: %d ms",info.process, info.activeSince)); } 

Logcat:

 TAG: Process com.android.systemui has been running since: 86526 ms 

Esa es la pantalla de bloqueo ^

 TAG: Process com.qualcomm.telephony has been running since: 68521 ms TAG: Process com.motorola.ccc has been running since: 57456 ms TAG: Process com.google.android.music:main has been running since: 26245 ms TAG: Process com.android.phone has been running since: 29421 ms TAG: Process com.motorola.ccc has been running since: 52141 ms TAG: Process system has been running since: 28602 ms TAG: Process com.motorola.actions has been running since: 74371 ms TAG: Process com.motorola.ccc has been running since: 59166 ms TAG: Process com.motorola.process.slpc has been running since: 25483 ms TAG: Process com.android.systemui has been running since: 30142 ms TAG: Process com.android.bluetooth has been running since: 22187 ms TAG: Process system has been running since: 28603 ms TAG: Process com.google.android.gms.persistent has been running since: 31621 ms TAG: Process com.android.systemui has been running since: 27361 ms TAG: Process com.google.android.gms.persistent has been running since: 99678 ms TAG: Process com.motorola.contacts.preloadcontacts has been running since: 45603 ms TAG: Process com.google.android.gms.persistent has been running since: 73457 ms TAG: Process com.google.android.gms.persistent has been running since: 72908 ms TAG: Process com.google.android.gms.persistent has been running since: 37251 
  • Establecer lockscreen a "None" por programa?
  • Android: reproductor de música por defecto en lockscreen
  • ¿Cómo probar widgets de pantalla bloqueada de Android en un emulador?
  • Media Session Compat no muestra controles Lockscreen en Pre-Lollipop
  • ¿Cree la lockscreen personalizada para android 4.0 o arriba?
  • Lockscreen de Android ICS nativo
  • Cómo deshabilitar la pantalla de desbloqueo programáticamente
  • ¿Cómo bloquear mediante programación la pantalla en Android?
  • La pantalla de bloqueo para Android no funciona correctamente con Android
  • Activar o desactivar la pantalla PatternLock del código
  • Notificación de pantalla de bloqueo de Android Vista personalizada con ripple y doble toque
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.