2012-04-06 6 views
5

Kann eine Geräteausrichtung über ADB überprüft werden?Prüfen, ob Gerät über ADB in der Landschaft ist

Nicht durch die Installation von Software, Aufruf einer vorhandenen Software, nur über ADB. Würde vermuten, dass es irgendwo eine Statusdatei in /proc gibt, die aber noch nicht gefunden werden konnte.

adb shell dumpsys | grep 'SurfaceOrientation' | awk '{ print $2 }' 

Der Ausgang eine ganze Zahl von 0 bis 3 für jede der vier möglichen Orientierungen hin wird sein:

Antwort

8

Dies kann durch den folgenden Befehl durchgeführt werden. 0 und 2 sind Landschaften, während 1 und 3 Porträts sind. Da der Ausgang dumpsys sehr groß ist, kann der Befehl einige Sekunden dauern.

Update: dgmltn der Änderung ist wahrscheinlich viel schneller:

adb shell dumpsys input | grep 'SurfaceOrientation' | awk '{ print $2 }' 
+0

Magie! Das Ausführen des Befehls dauert jedoch eine Weile. '% time adb shell' => ' adb shell dumpsys 0.01s Benutzer 0.03s System 0% cpu 9.001 insgesamt 'ca. 9 Sekunden auf einem Nexus 7. Guter Fang sowieso. Vielen Dank! –

+0

@TVK: 0 ist Porträt und 1 ist Landschaft, Sie erwähnten es umgekehrt. trotzdem danke – Oxi

+0

Vielleicht unterscheidet es sich dann pro Gerät. Ich bin ziemlich sicher, dass diese Werte auf einem frühen Galaxy Tab-Modell korrekt waren. – tvkanters

0

Einfachere Lösung:

adb shell dumpsys window | grep -i surfaceorientation | awk '{ print $2 }' 
0

ich diese Methode gefunden content query --uri content://settings/system --projection name:value --where "name='user_rotation'" nach adb shell öffnen. Scheint zwar nicht zu funktionieren, wenn man zuerst eine Shell ohne Öffnen öffnet.