'Changing Android Device orientation with ADB
I'm using Android 4.4 on a real device and I want to set the device orientation via adb. I don't want it done with uiautomator since it won't last after the termination of the uiautomator code.
How can I do this?
Solution 1:[1]
You may first need to turn off the automatic rotation:
adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0
Rotate to landscape:
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1
Rotate portrait:
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0
Solution 2:[2]
Instead of using "adb shell content", there's a more clean way by using "adb shell settings". They are doing the same thing, put value to settings provider.
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 enableuser_rotation: actual rotation, clockwise, 0 0°, 1 90°, 2 180°, 3 270°
Solution 3:[3]
Disable accelerometer_rotation and set the 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
Example using adb:
adb shell settings put system accelerometer_rotation 0
adb shell settings put system user_rotation 3
Example programmatically:
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);
Solution 4:[4]
wm cmd can be used to set the user rotation on adb shell
wm help
set-user-rotation [free|lock] [-d DISPLAY_ID] [rotation]
Set user rotation mode and user rotation.
Example:
wm set-user-rotation lock 0
wm set-user-rotation lock 1
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Community |
| Solution 2 | wrkwrk |
| Solution 3 | |
| Solution 4 | Shailendra Yadav |
