Le contexte :
J'utilise des tests automatisés sur de nombreuses variantes d'appareils ( Tablettes et smartphones Samsung tels que Galaxy A5, S8, S7, etc. ) où les appareils ont des versions différentes d'Android ( 6.0, 6.0.1, 7.0 et 7.1.1 ) - le tout dans des combinaisons variées.
Certains de mes tests nécessitent de verrouiller l'écran (l'éteindre), puis de l'allumer et de saisir un code PIN. Je n'ai pas été en mesure de trouver une commande adb (universelle) pour obtenir l'état des téléphones. Idéalement, je voudrais un commande pour me dire dans lequel des états suivants le téléphone se trouve :
- Écran éteint (on suppose qu'il est également verrouillé)
- Écran allumé, verrouillé
- Écran allumé, déverrouillé
Ma meilleure solution jusqu'à présent est d'utiliser les 2 commandes suivantes (terminal bash) :
#1:
adb shell dumpsys display | grep "mScreenState"
#2:
adb shell service call trust 7
La commande n°1 m'indique si l'écran est allumé, éteint ou "assoupi".
La commande n°2 me dit si le téléphone est verrouillé ou déverrouillé.
質問です。
Existe-t-il une seule commande adb qui puisse me donner les informations dont j'ai besoin ? Cette commande est-elle compatible avec les versions d'Android énumérées ci-dessus ?
Sur Android version 6.* commande #2 toujours indique que le téléphone est verrouillé. Quelle est l'alternative "compatible Android 6.*" de la commande n°2 ? ----> Par pur hasard, j'ai trouvé ce "service de confiance". 6 "fonctionne comme prévu sous Android 6. des appareils!*
Nota:
La ressource que j'ai trouvée qui ressemble le plus à mon problème est la suivante Question/réponse sur le SO . Cependant, tous les appareils n'ont pas/utilisent le NFC, donc la commande suivante (bien que compatible avec la plupart des appareils/versions) n'est pas acceptable dans mes tests :
adb shell dumpsys nfc | grep 'mScreenState='
Puisque le timing est un problème, la solution proposée (meilleure réponse dans le lien) n'est pas acceptable non plus.