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
- Actividad de Android sobre la pantalla de bloqueo predeterminada
- ¿Es posible crear el widget como Google Play Música en la pantalla de bloqueo?
- track / count intento de desbloqueo realizado en patrón
- ¿Cómo iniciar una nueva actividad desde lockscreen?
- "Bloquear pantalla" con contraseña de seguridad personalizada
- ¿Cómo mostrar el cuadro de diálogo de solicitud de permisos de Servicios de ubicación de Google arriba / a través de la pantalla de bloqueo?
- Evitar la expansión de la barra de estado
- Personalización de la funcionalidad de la pantalla de bloqueo de Android?
- Una forma de obtener desbloquear evento en android?
- Desbloquear dispositivo, mostrar un texto y bloquearlo de nuevo.
- Mostrar información personalizada en la pantalla de bloqueo en Android
- ¿Cómo puedo mostrar la notificación en la pantalla de bloqueo de Android?
- OnReceive no se llama al eliminar Widgets en la pantalla de bloqueo - Nexus 7
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