pin para pantalla iniciar ingrese dispositivo contraseña como celular bloquear android automation

pantalla - para iniciar el dispositivo android ingrese la contraseña



¿Cómo puedo desbloquear la pantalla mediante programación en Android? (7)

Creo que el siguiente enlace tiene la respuesta que estás buscando.

http://developer.android.com/guide/topics/testing/activity_testing.html#UnlockDevice

Desbloqueo del emulador o dispositivo

Es posible que las pruebas de IU no funcionen si la pantalla de inicio del emulador o del dispositivo está desactivada con el patrón de bloqueo de teclas. Esto se debe a que la aplicación bajo prueba no puede recibir eventos clave enviados por sendKeys (). La mejor manera de evitar esto es iniciar su emulador o dispositivo primero y luego desactivar el bloqueo de teclado para la pantalla de inicio.

También puede desactivar explícitamente el bloqueo de teclas. Para hacer esto, necesita agregar un permiso en el archivo de manifiesto (AndroidManifest.xml) y luego deshabilitar el bloqueo de teclado en su aplicación bajo prueba. Sin embargo, tenga en cuenta que debe eliminar esto antes de publicar su aplicación, o tiene que deshabilitarlo con el código en la aplicación publicada.

Para agregar el permiso, agregue el elemento como elemento secundario del elemento. Para desactivar KeyGuard, agregue el siguiente código al método de actividades onCreate () que intenta probar:

mKeyGuardManager = (KeyguardManager) getSystemService (KEYGUARD_SERVICE); mLock = mKeyGuardManager.newKeyguardLock ("activity_classname"); mLock.disableKeyguard (); donde activity_classname es el nombre de clase de la actividad.

Estoy trabajando en un marco de prueba automatizado remoto para Android basado en JUnit (las pruebas se ejecutan fuera de Android, interactuando con el código dentro de él). Todo está funcionando bastante bien, pero un problema que tengo es que cuando comienzo automáticamente un nuevo emulador, la pantalla comienza a bloquearse. Esto parece afectar el funcionamiento de mis pruebas, además, quiero ver ejecutar las pruebas (botones presionados, texto escrito, etc.). Si inicio manualmente un emulador y desbloqueo su pantalla, todo funciona bien.

¿Hay alguna manera de desbloquear programáticamente la pantalla en Android? Una API de Java, una línea de comando o un comando de shell, etc., todo estaría bien. Salvo eso, tal vez hay una manera de iniciar un emulador desbloqueado?


El one-liner que funciona para mí en Android SDK r18 y r20 hablando con un emulador 4.0.3 (API 15):

adb shell input keyevent 82


La forma más fácil de desbloquear la pantalla (suponiendo que no hay contraseña) es pasar un evento KEYCODE_MENU; Sin embargo, si la pantalla ya está desbloqueada, esto realmente abrirá un menú, que probablemente no sea la funcionalidad que está buscando.

Si desea una forma sencilla de garantizar que la pantalla se desbloqueará sin abrir un menú por accidente, primero debe pasar un evento KEYCODE_POWER. Esto garantizará que el dispositivo esté bloqueado, por lo que el evento del menú solo desbloqueará la pantalla.

adb shell input keyevent KEYCODE_POWER; adb shell input keyevent KEYCODE_MENU

(Nota: el 82 que aparece en otras respuestas es la constante KEYCODE_MENU).


Logré hacerlo usando el shell:

adb shell #input keyevent 82


Prueba este script:

echo "event send EV_KEY:KEY_SOFT1:1" | nc -q1 localhost 5554 sleep 0.1 echo "event send EV_KEY:KEY_SOFT1:0" | nc -q1 localhost 5554 sleep 0.1 echo "event send EV_KEY:KEY_SOFT1:1" | nc -q1 localhost 5554 sleep 0.1 echo "event send EV_KEY:KEY_SOFT1:0" | nc -q1 localhost 5554 sleep 0.1


Puede bloquear su dispositivo emulador ejecutando este comando desde el símbolo del sistema

adb shell input keyevent 26

Puede desbloquear su dispositivo emulador ejecutando este comando desde el símbolo del sistema

adb shell input keyevent 82

Después de ejecutar el comando de desbloqueo, es posible que tenga que esperar unos minutos. El comando anterior de desbloqueo funcionará cuando no tenga ningún bloqueo de seguridad.


Puede interactuar con el emulador a través de su interfaz de consola .

Si alguna vez se preguntó por qué su emulador comenzó con un número como 5554, es porque ese es el puerto en el que escucha el emulador.

Puede encontrar el puerto para ejecutar emuladores con el comando adb devices . Tendrá un resultado como este:

C:/>adb devices List of devices attached emulator-5554 device

Entonces puedes conectarte al emulador usando un comando como:

telnet localhost 5554

Si te conectas con éxito obtendrás un mensaje de confirmación y podrás comenzar a ingresar comandos.

Hay varios comandos, pero el que nos interesa es el event para simular eventos de hardware. Podemos desbloquear la pantalla presionando Menú que emulamos con el siguiente comando:

event send EV_KEY:KEY_MENU:1 EV_KEY:KEY_MENU:0

EV_KEY:KEY_MENU:1 es un evento de tecla abajo y EV_KEY:KEY_MENU:0 es el evento de EV_KEY:KEY_MENU:0 correspondiente. Asegúrate de hacer ambas cosas o la tecla de menú se quedará presionada.

Me doy cuenta de que escribir un guión no será nada fácil, pero es todo lo que puedo pensar para resolver su problema.

Editar: no creo que el event send EV_KEY:KEY_MENU:1 EV_KEY:KEY_MENU:0 está emulando Menú, pero si ejecuto el comando justo después de haber iniciado el emulador, lo desbloquea. No estoy seguro por qué, pero creo que esto es un comienzo.