android+关闭屏幕旋转,Android:即使设备自动旋转屏幕关闭,如何强制反向纵向?...

经过大量研究后,似乎超越设备锁定方向并将屏幕设置为反向纵向的唯一方法是强制启用设备自动旋转。

首先,必须在标记上方的清单文件中添加此权限:

然后,在mainActivity中定义类似的内容:

public boolean enableAutoRotate(){

boolean isAutoRotate = android.provider.Settings.System

.getInt(getContentResolver(),Settings.System.ACCELEROMETER_ROTATION, 1) == 1;

if (!isAutoRotate){

try {

android.provider.Settings.System

.putInt(getContentResolver(),Settings.System.ACCELEROMETER_ROTATION, 1);

} catch (Exception e){

e.printStackTrace();

}

}

isAutoRotate = android.provider.Settings.System

.getInt(getContentResolver(),Settings.System.ACCELEROMETER_ROTATION, 1) == 1;

return isAutoRotate;

}

如果用户没有提供或删除权限,则try和catch对于防止应用程序崩溃非常重要。

然后,在需要时使用以下内容设置方向:

public void rotateScreen(boolean reverse){

if (enableAutoRotate()){

if (reverse) {

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);

}

else {

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}

}

}

如果需要,rotateScreen方法也可以是boolean而不是void。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值