将屏幕方向的控制权返回给设备

时间:2014-03-23 19:04:01

标签: android default device-orientation

我正在尝试构建一个始终设置为横向模式的应用程序,因为我的应用程序中没有任何活动,所以我尝试通过更改设备的方向来更改应用程序的方向。 这适用于我的应用程序,但由于我控制整个设备的方向,有些地方受我的代码影响,例如。(在我的设备上,主屏幕从未旋转,但当我将我的代码添加到应用程序时,它开始旋转到景观)

所以我想问的是(在我关闭我的应用程序之后)如何使设备的方向像添加我自己的代码之前通常那样工作?

这是我的代码:

WindowManager wm = (WindowManager) getSystemService(Service.WINDOW_SERVICE);

    orientationChanger = new LinearLayout(this);
    orientationChanger.setClickable(false);
    orientationChanger.setFocusable(false);
    orientationChanger.setFocusableInTouchMode(false);
    orientationChanger.setLongClickable(false);

    LayoutParams orientationLayout = new WindowManager.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0,
            WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                    | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.RGBA_8888);

    wm.addView(orientationChanger, orientationLayout);
    orientationChanger.setVisibility(View.GONE);

    orientationLayout.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
    wm.updateViewLayout(orientationChanger, orientationLayout);
    orientationChanger.setVisibility(View.VISIBLE);

1 个答案:

答案 0 :(得分:0)

这是完全矫枉过正的。只需使用screenOrientation中的Activity代码的AndroidManifest.xml属性:

<activity
    android:name=".MyActivity"
    android:screenOrientation="landscape">