使用ADB更改Android设备方向

时间:2014-09-16 08:49:26

标签: android automation adb ui-automation

我在真实设备上使用Android 4.4,我想通过adb设置设备方向。我不希望它与uiautomator完成,因为它不会在uiautomator代码终止后持续。

我该怎么做?

4 个答案:

答案 0 :(得分:55)

您可能首先需要关闭自动旋转

adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0

旋转到横向

    adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1

旋转肖像

    adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0

答案 1 :(得分:32)

使用“adb shell设置”不是使用“adb shell内容”,而是采用更简洁的方法。他们正在做同样的事情,为设置提供商提供价值。

adb shell settings put system accelerometer_rotation 0  #disable auto-rotate
adb shell settings put system user_rotation 3  #270° clockwise
  • accelerometer_rotation: auto-rotation, 0 disable, 1 enable
  • user_rotation: actual rotation, clockwise, 0 0°, 1 90°, 2 180°, 3 270°

答案 2 :(得分:13)

停用accelerometer_rotation并设置user_rotation

user_rotation Values:
0           # Protrait 
1           # Landscape
2           # Protrait Reversed
3           # Landscape Reversed
accelerometer_rotation Values:
0           # Stay in the current rotation
1           # Rotate the content of the screen

使用adb的示例:

adb shell settings put system accelerometer_rotation 0
adb shell settings put system user_rotation 3

以编程方式示例:

import android.provider.Settings;

// You can get ContentResolver from the Context
Settings.System.putInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0);
Settings.System.putInt(getContentResolver(), Settings.System.USER_ROTATION, 3);

答案 3 :(得分:0)

wm cmd 可用于在 adb shell 上设置用户轮换

wm help
set-user-rotation [free|lock] [-d DISPLAY_ID] [rotation]
Set user rotation mode and user rotation.

示例:

wm set-user-rotation lock 0
wm set-user-rotation lock 1