是否可以通过 ADB 检查设备方向?
不是通过安装任何软件,调用任何现有软件,只是通过亚行。会猜测在某处有一个状态文件/proc
,但还没有找到。
这可以通过以下命令完成:
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 }'
更简单的解决方案:
adb shell dumpsys window | grep -i surfaceorientation | awk '{ print $2 }'
content query --uri content://settings/system --projection name:value --where "name='user_rotation'"
我打开后发现了这个方法adb shell
。虽然如果在没有先打开外壳的情况下输入似乎不起作用。
除了前面的答案,我想指出的是,返回值adb shell dumpsys | grep 'SurfaceOrientation'
并不总是遵循跨设备的特定规则(“0 和 2 是横向,而 1 和 3 是纵向”是错误的)。
我通过附加查询改进了该方法,该查询建议如何解释返回值,即
dumpsys window | grep 'mLandscapeRotation'
值 0 表示:0 和 2 是风景,1 和 3 是肖像
值 1 表示相反的情况
我不确定自上次写完答案后是否发生了变化,或者是因为我正在模拟不同的设备。但我也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