我正在开发基于常规活动的应用程序。 我已从设备设置中关闭设备方向。 当我在设备上运行我的应用时,应用会根据设备移动更改方向。 我不知道即使设备方向被锁定,应用程序如何旋转。 在堆栈溢出或任何其他论坛上没有报告或曾经询问过此类实例/问题。 请指出,我可能会缺少什么?
答案 0 :(得分:0)
您可以检查设备旋转是否已关闭然后再锁定,如下所示:
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);
}
答案 1 :(得分:0)
这是一个非常愚蠢的错误,但我想在这里分享以防任何其他人面临这个问题。 有一次,在我的应用程序中,我以编程方式将设备方向设置为SCREEN_ORIENTATION_FULL_SENSOR:
activityContext.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
这允许应用程序根据传感器更改方向,即使用户已锁定设备方向。