即使设备方向锁定,应用程序也会自动旋转
App auto rotates even with device orientation locked
我正在开发基于 activity 的普通应用程序。
我已从设备设置中关闭设备方向。
当我 运行 我的应用程序在设备上时,该应用程序会根据设备的移动改变方向。
我不知道即使设备方向被锁定,应用程序如何旋转。
在堆栈溢出或任何其他论坛上没有这样的 instance/issue 报告或询问过。
请指出,我可能遗漏了什么?
您可以检查设备旋转是关闭还是打开,然后将其锁定,如下所示:
if (android.provider.Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) == 1){
//Auto Rotate is on, so don't lock
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
else{
//Auto Rotate is off, so lock
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
这是一个非常愚蠢的错误,但我想到在这里分享,以防其他人遇到这个问题。
有一次,在我的应用程序中,我以编程方式将设备方向设置为 SCREEN_ORIENTATION_FULL_SENSOR:
activityContext.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
这允许应用根据传感器更改方向,即使用户已锁定设备方向。
我正在开发基于 activity 的普通应用程序。 我已从设备设置中关闭设备方向。 当我 运行 我的应用程序在设备上时,该应用程序会根据设备的移动改变方向。 我不知道即使设备方向被锁定,应用程序如何旋转。 在堆栈溢出或任何其他论坛上没有这样的 instance/issue 报告或询问过。 请指出,我可能遗漏了什么?
您可以检查设备旋转是关闭还是打开,然后将其锁定,如下所示:
if (android.provider.Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) == 1){
//Auto Rotate is on, so don't lock
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
else{
//Auto Rotate is off, so lock
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
这是一个非常愚蠢的错误,但我想到在这里分享,以防其他人遇到这个问题。 有一次,在我的应用程序中,我以编程方式将设备方向设置为 SCREEN_ORIENTATION_FULL_SENSOR:
activityContext.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
这允许应用根据传感器更改方向,即使用户已锁定设备方向。