6

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

不是通过安装任何软件,调用任何现有软件,只是通过亚行。会猜测在某处有一个状态文件/proc,但还没有找到。

4

5 回答 5

13

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

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 }'
于 2013-01-08T15:16:00.827 回答
0

更简单的解决方案:

adb shell dumpsys window | grep -i surfaceorientation | awk '{ print $2 }'
于 2014-12-02T09:02:56.207 回答
0

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

于 2016-07-15T21:59:02.213 回答
0

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

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

dumpsys window | grep 'mLandscapeRotation'

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

值 1 表示相反的情况

于 2020-09-15T08:11:59.177 回答
0

我不确定自上次写完答案后是否发生了变化,或者是因为我正在模拟不同的设备。但我也SurfaceOrientation没有mLandscapeRotation出现在 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
于 2021-06-26T10:47:58.270 回答