2 votos

Comando Adb(s) para obtener la pantalla de estado y estado de bloqueado

Antecedentes:

Estoy usando pruebas automatizadas en muchas variantes diferentes de dispositivos (tabletas de Samsung y los teléfonos inteligentes como el Galaxy A5, S8, S7, etc.) donde los dispositivos tienen diferentes versiones de Android (6.0, 6.0.1, 7.0 y 7.1.1) - todos, en diferentes combinaciones.

Algunos de mis pruebas requieren de bloqueo de la pantalla (se apaga) y, a continuación, encenderlo y PIN-ing. No he sido capaz de encontrar un (universal) adb-comando para obtener los teléfonos de estado. Idealmente, me gustaría un comando para que me diga en cual de los siguientes estados el teléfono está en:

  1. Pantalla apagada (se Supone bloqueado)
  2. Pantalla de encendido, bloqueado
  3. Pantalla de encendido y desbloqueado

Mi mejor solución hasta el momento es el uso de los siguientes 2 (bash terminal de comandos):

#1:
adb shell dumpsys display | grep "mScreenState"

#2:
adb shell service call trust 7

El comando #1 me dice que si la pantalla está encendido, apagado o "dormido".

El comando #2 me dice si el teléfono está bloqueado o desbloqueado.

Preguntas:

Hay un solo comando adb que puede darme la información que necesito? Es este comando compatible con las versiones de Android en la lista?

En Android la versión 6.* el comando #2 siempre indica que el teléfono está bloqueado. ¿Qué es el "Android 6.* compatible" alternativa de comando #2? ----> Por pura casualidad me encontré con que "el servicio de llamadas de confianza 6" funciona como se esperaba en Android 6. los dispositivos!*

Nota:

El recurso que he encontrado que más se asemeja a mi cuestión es la siguiente , de MODO de pregunta/respuesta. Sin embargo, no todos los dispositivos tienen/uso de NFC para el comando siguiente (aunque compatible con la mayoría de dispositivos/versiones), no es aceptable en mis pruebas:

adb shell dumpsys nfc | grep 'mScreenState='

Desde que el tiempo es un problema, la solución propuesta (mejor respuesta en el enlace) no es aceptable.

1voto

Scott Puntos 3238

Yo soy un fanboy de Windows, por lo que la solución contiene find en lugar de utilizar grep, basta con sustituir encontrar con grep.

adb shell dumpsys power | find "mWakefulness="
adb shell dumpsys power | find "mHoldingWakeLockSuspendBlocker=" 

Pantalla de APAGADO y Bloqueado = mWakefulness=Dormido y mHoldingWakeLockSuspendBlocker=false

Pantalla EN y Bloqueado = mWakefulness=Despierto y mHoldingWakeLockSuspendBlocker=false

Pantalla de ENCENDIDO y Desbloqueado = mWakefulness=Despierto y mHoldingWakeLockSuspendBlocker=true

P. S: lo he probado en Android 7.0, no sé si va a funcionar con otras versiones.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: