2016-07-29 75 views
0

我正在開發一個鎖屏應用程序,其中我使用WindowManager在服務中添加了一個View。 我已經在清單文件中爲所有活動設置了方向PORTRAIT,但似乎不適用於此動態添加的視圖。禁用方向更改 - WindowManager

請參考下面的代碼片段

public class LockerService extends Service{ 
     @Override 
      public void onCreate() { 
       super.onCreate(); 
       windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 
       lockScreenView = new LockScreenView(this, this); 
       windowManager.addView(lockScreenView, params); 
    } 
} 

鎖屏圖如下:

public class LockScreenView extends RelativeLayout{ 
public LockScreenView(Context context, ScreenUnlockedDeligate screenUnlockedDeligate) { 
     super(context); 
     setSystemUiVisibility(SYSTEM_UI_FLAG_IMMERSIVE_STICKY | SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION); 
     inflate(getContext(), R.layout.view_lock, this); 

    } 

} 

有沒有什麼辦法可以禁用此視圖方向的變化?即Orientation.PORTRAIT

編輯:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

似乎並不在這方面可

在此先感謝!

乾杯

回答

0

經過一番搜索,我找到了一個解決方案。

添加

params.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;

添加視圖之前將解決問題並根據需要鎖定方向。

,如:

public class LockerService extends Service{ 
      @Override 
       public void onCreate() { 
        super.onCreate(); 
        windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 
        lockScreenView = new LockScreenView(this, this); 
        params.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; 
        windowManager.addView(lockScreenView, params); 
     } 
    }