如何控制Android设备的屏幕方向

use*_*031 4 android screen rotation orientation

如何以编程方式控制整个设备的屏幕方向并进行更改?这里链接到一些可以做到这一点的应用:

http://dandroidtabletpc.com/download-total-screen-control-1-9-3-full-android-apk.html/

http://ru.androidzoom.com/android_applications/tools/ultimate-rotation-control_bznhn.html

也许有人知道像这样的开源项目?

cla*_*n33 13

@Override
    public void onCreate(Bundle savedInstanceState) {
          setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
}
Run Code Online (Sandbox Code Playgroud)

要么

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Run Code Online (Sandbox Code Playgroud)

  • 这似乎只影响当前的活动而不是整个手机. (4认同)

Sam*_*Sam 5

以下是我所知道的两种方法:

强制屏幕方向

如果您希望设置的方向覆盖应用自己的方向偏好设置,请按照如何在Android中全局强制屏幕方向中的说明操作.

非强制改变方向

如果您不希望设置的方向覆盖应用程序自己的方向首选项,请首先确保手机的自动旋转已关闭:

Settings.System.putInt(
    this.contentResolver,
    Settings.System.ACCELEROMETER_ROTATION,
    0 //0 means off, 1 means on
);
Run Code Online (Sandbox Code Playgroud)

然后设置手机的用户方向:

Settings.System.putInt(
    getContentResolver(),
    Settings.System.USER_ROTATION,
    Surface.ROTATION_0 //Use any of the Surface.ROTATION_ constants
);
Run Code Online (Sandbox Code Playgroud)

不要忘记检查返回值putInt以确保更改成功.

另外,我认为你需要以下许可:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)