2016-07-29 4 views
0

서비스에서 WindowManager를 사용하여 뷰를 추가하는 잠금 화면 응용 프로그램을 개발 중입니다. 모든 액티비티에 대한 매니페스트 파일에 오리엔테이션 PORTRAIT을 설정했지만이 동적으로 추가 된보기에는 작동하지 않습니다.오리엔테이션 변경 사용 안 함 - WindowManager

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); 

    } 

} 

내가이 뷰 방향 변경을 해제 할 수있는 방법이 있나요 : 다음과 같이

코드 아래

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); 
    } 
} 

잠금 화면보기를 참조하십시오? 즉 Orientation.PORTRAIT

EDIT :

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); 
     } 
    }