通过ADB检查设备是否为横向

时间:2012-04-06 07:43:05

标签: android

是否可以通过ADB检查设备方向?

不是通过ADB安装任何软件,调用任何现有软件。会猜到/proc中有某个状态文件,但还找不到它。

5 个答案:

答案 0 :(得分:10)

这可以通过以下命令完成:

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

对于四种可能的方向中的每一种,输出将是0到3的整数。 0和2是风景,而1和3是肖像。由于dumpsys输出非常大,命令可能需要几秒钟才能完成。

更新: dgmltn的修改速度可能更快:

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

答案 1 :(得分:0)

更简单的解决方案:

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

答案 2 :(得分:0)

我在打开content query --uri content://settings/system --projection name:value --where "name='user_rotation'"后找到了此方法adb shell。虽然如果在没有首先打开shell的情况下输入似乎不起作用。

答案 3 :(得分:0)

除了前面的答案,我想指出的是adb shell dumpsys | grep 'SurfaceOrientation'的返回值并不总是遵循特定的设备规则(“ 0和2是风景,而1和3是肖像”是错误)。

我通过附加查询改进了该方法,该查询建议如何解释返回值,即

dumpsys window | grep 'mLandscapeRotation'

值0表示:0和2是风景,1和3是肖像

值1表示相反的情况

答案 4 :(得分:0)

我不确定自上次回答以来是否发生了变化,或者是因为我正在模拟不同的设备。 但是 SurfaceOrientationmLandscapeRotation 都没有出现在我的 dumpsys 中。 在旋转之间对 dumpsys 的输出进行差异后,我发现 mPredictedRotation

#Normal
$./adb shell dumpsys window displays | grep 'mPredictedRotation'
        mPredictedRotation=0

#Right
$./adb shell dumpsys window displays | grep 'mPredictedRotation'
        mPredictedRotation=3

#Inverted
$./adb shell dumpsys window displays | grep 'mPredictedRotation'
        mPredictedRotation=2
$Left
#./adb shell dumpsys window displays | grep 'mPredictedRotation'
        mPredictedRotation=1