2016-07-29 76 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); 
     } 
    }