簡體   English   中英

鎖定Android屏幕方向到景觀

[英]lock android screen orientation to landscape

我正在開發一個Android應用程序,其中一個功能是將屏幕方向鎖定到Landscape,我想將此方向更改應用於手機中的所有Android應用程序。 我正在使用此代碼

private void lockScreenOrientation() {
if (!mScreenOrientationLocked) {
    final int orientation = getResources().getConfiguration().orientation;
    final int rotation = getWindowManager().getDefaultDisplay().getOrientation();
    if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90) {
        if (orientation == Configuration.ORIENTATION_PORTRAIT) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
        else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
    }
    else if (rotation == Surface.ROTATION_180 || rotation == Surface.ROTATION_270) {
        if (orientation == Configuration.ORIENTATION_PORTRAIT) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
        }
        else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
        }
    }

    mScreenOrientationLocked = true;
}
}

private void unlockScreenOrientation() {
 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
 mScreenOrientationLocked = false;
}

但這是暫時的改變,並沒有對所有應用程序生效,有沒有人知道一種方法將鎖定方向應用於所有應用程序? 謝謝

您鏈接的應用程序通過修改與旋轉關聯的全局系統設置值來執行此操作。 查看Settings.System類,了解應用程序可用的常量。 具體來說, ACCELEROMETER_ROTATIONUSER_ROTATION值可能會感興趣。

您還需要在清單中聲明android.permission.WRITE_SETTINGS以及可能的android.permission.WRITE_SECURE_SETTINGS權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM