Antecedentes:
Estoy utilizando pruebas automatizadas en muchas variantes diferentes de dispositivos ( Tabletas y smartphones Samsung como Galaxy A5, S8, S7, etc. ) donde los dispositivos tienen diferentes versiones de Android ( 6.0, 6.0.1, 7.0 y 7.1.1 ), todo ello en diferentes combinaciones.
Algunas de mis pruebas requieren bloquear la pantalla (apagarla) y luego encenderla e introducir el PIN. No he podido encontrar un comando adb (universal) para obtener el estado de los teléfonos. Idealmente, me gustaría un para decirme en cuál de los siguientes estados se encuentra el teléfono:
- Pantalla apagada (se supone que también bloqueada)
- Pantalla encendida, bloqueada
- Pantalla encendida, desbloqueada
Mi mejor solución hasta ahora es utilizar los siguientes 2 comandos (terminal bash):
#1:
adb shell dumpsys display | grep "mScreenState"
#2:
adb shell service call trust 7
El comando #1 me dice si la pantalla está encendida, apagada o "adormecida".
El comando #2 me dice si el teléfono está bloqueado o desbloqueado.
Preguntas:
¿Hay algún comando adb que pueda darme la información que necesito? ¿Es este comando compatible con las versiones de Android mencionadas anteriormente?
En la versión 6.* de Android el comando #2 siempre indica que el teléfono está bloqueado. Cuál es la alternativa "compatible con Android 6.*" del comando #2? ----> Por pura casualidad encontré esa "llamada de servicio de confianza". 6 "funciona como se esperaba en Android 6. dispositivos!*
Nota:
El recurso que he encontrado más parecido a mi problema es el siguiente Pregunta/respuesta del SO . Sin embargo, no todos los dispositivos tienen/utilizan NFC, por lo que el siguiente comando (aunque es compatible con la mayoría de los dispositivos/versiones) no es aceptable en mis pruebas:
adb shell dumpsys nfc | grep 'mScreenState='
Dado que el tiempo es un problema, la solución propuesta (la mejor respuesta en el enlace) tampoco es aceptable.