以编程方式启用和禁用自动旋转?

Cam*_*ide 24 android

有很多很酷的小部件可以启用和禁用手机上的自动旋转功能.禁用它会在手机上的所有应用中关闭它.

有什么想法他们是如何完成它的?

Lio*_*ior 49

这应该是你的诀窍:

    import android.provider.Settings;
    public static void setAutoOrientationEnabled(Context context, boolean enabled)
    {
          Settings.System.putInt( context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, enabled ? 1 : 0);
    }
Run Code Online (Sandbox Code Playgroud)

添加AndroidManifest.xml的权限

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

你可以在这里找到文档

  • 这似乎有效,但即使我是在肖像中,它也会阻止你锁定我在风景中的方向.我在蜂窝平板电脑上进行测试,所以我不确定是否存在差异....这是预期的行为吗? (2认同)

Paw*_*ari 6

始终使用用户指定的屏幕方向,这将应用用户选择的任何方向,并且在禁用屏幕时不会旋转屏幕。

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
Run Code Online (Sandbox Code Playgroud)