通過修改數據庫System settings 來修改手機屏幕的旋轉方向, 設置Settings.System. ACCELEROMETER_ROTATION和Settings.System. USER_ROTATION的值,可以通過命令行和Java API來實現
1.通過命令行來修改
- su
- sqlite3 /data/data/com.android.providers.settings/databases/settings.db
- insert into system (name,value) values('accelerometer_rotation',0);
- insert into system (name,value) values('user_rotation',1);
- .exit
其中,user_rotation的值和旋轉角度的關係如下,
- user_rotation 0 -> ROTATION_0
- user_rotation 1 -> ROTATION_180
- user_rotation 2 -> ROTATION_270
- user_rotation 3 -> ROTATION_90
2.通過java 程序實現
首先取消手機的重力感應
- public void disableAccelerometerRotation(){
- try {
- Settings.System.putInt(mcontext.getContentResolver(),Settings.System. ACCELEROMETER_ROTATION,0);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
設置指定的屏幕旋轉方向
- public void setScreenRotation(String rotationStr){
- int rotation = 0;// Surface.ROTATION_90;
- if(rotationStr.equals("0" )){
- rotation = Surface. ROTATION_0;
- } else if (rotationStr.equals("90")){
- rotation = Surface. ROTATION_90;
- } else if (rotationStr.equals("180")){
- rotation = Surface. ROTATION_180;
- } else if (rotationStr.equals("270")){
- rotation = Surface. ROTATION_270;
- }
- Settings.System. putInt(mcontext.getContentResolver(),Settings.System. USER_ROTATION,rotation);
- }