修改Android屏幕默认旋转方向

通过修改数据库System settings 来修改手机屏幕的旋转方向, 设置Settings.System.ACCELEROMETER_ROTATION和Settings.System.USER_ROTATION的值,可以通过命令行和Java API来实现

1.通过命令行来修改

 
  1. su
  2. sqlite3/data/data/com.android.providers.settings/databases/settings.db
  3. insertintosystem(name,value)values('accelerometer_rotation',0);
  4. insertintosystem(name,value)values('user_rotation',1);
  5. .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 程序实现

首先取消手机的重力感应(0 禁用,1 开启)

 
 
  1. publicvoiddisableAccelerometerRotation(){
  2. try{
  3. Settings.System.putInt(mcontext.getContentResolver(),Settings.System.ACCELEROMETER_ROTATION,0);
  4. }catch(Exceptione){
  5. e.printStackTrace();
  6. }
  7. }

设置指定的屏幕旋转方向

 
  1. publicvoidsetScreenRotation(StringrotationStr){
  2. introtation=0;//Surface.ROTATION_90;
  3. if(rotationStr.equals("0")){
  4. rotation=Surface.ROTATION_0;
  5. }elseif(rotationStr.equals("90")){
  6. rotation=Surface.ROTATION_90;
  7. }elseif(rotationStr.equals("180")){
  8. rotation=Surface.ROTATION_180;
  9. }elseif(rotationStr.equals("270")){
  10. rotation=Surface.ROTATION_270;
  11. }
  12. Settings.System.putInt(mcontext.getContentResolver(),Settings.System.USER_ROTATION,rotation);
  13. }

因为修改了Settings的值,所以在程序中添加权限声明:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>


本文出自 “whithin's” 博客,请务必保留此出处http://whithin.blog.51cto.com/690417/1066779

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值