Изменение ориентации Android-устройства с помощью ADB

Я использую Android 4.4 на реальном устройстве и хочу установить ориентацию устройства через adb, Я не хочу, чтобы это было сделано с помощью uiautomator, так как это не будет продолжаться после завершения кода uiautomator.

Как я могу это сделать?

4 ответа

Вместо использования "содержимого оболочки adb", есть более чистый способ с использованием "настроек оболочки adb". Они делают то же самое, оценивают настройки провайдера.

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°

Сначала вам может понадобиться отключить автоматический поворот

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

Запрещать 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);

wm cmd можно использовать для установки поворота пользователя в оболочке adb.

      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
Другие вопросы по тегам