如何仅针对我的应用启用/禁用方向更改?

时间:2015-04-30 13:11:15

标签: android

使用以下代码,我可以启用或禁用整个设备的自动旋转

Settings.System.putInt(
    getActivity().getContentResolver(),
    Settings.System.ACCELEROMETER_ROTATION, 
    orientationEnabled //0 means off, 1 means on
);

我怎么能这样做但限于我的应用程序?我不想在使用我的应用程序后更改全局设置,强制用户恢复它们。

编辑: 我想在运行时更改该设置,而不是永久锁定它 例如,在某些时候启用自动旋转,因此如果他愿意,可以改变方向,但不要强迫他(因此solution不合适)。

2 个答案:

答案 0 :(得分:1)

要暂时禁用“活动”中的方向更改,请调用此方法:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

然后重新启用方向更改调用:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

答案 1 :(得分:1)

你可以在AndroidManifest里面的活动标签

中启用/禁用屏幕旋转

喜欢这个

 <activity
           ---
            android:screenOrientation="locked"
           ----  />

所有screenOrientation选项

android:screenOrientation=["unspecified" | "behind" |
                                     "landscape" | "portrait" |
                                     "reverseLandscape" | "reversePortrait" |
                                     "sensorLandscape" | "sensorPortrait" |
                                     "userLandscape" | "userPortrait" |
                                     "sensor" | "fullSensor" | "nosensor" |
                                     "user" | "fullUser" | "locked"]

希望这会对你有所帮助。