실행중인 Activity에 WindowManager를 사용하여 카메라 오버레이를 추가했습니다. 카메라를 시작하고 WindowManager를 호출하면 적절한 세로 태그를 WindowManager.LayoutParams에 할당 했음에도 불구하고 세로에서 가로로 화면이 변경됩니다. Google을 통해 해결책을 찾을 수 없었습니다.Android WindowManager에서 화면 방향 변경
inflater = (LayoutInflater) mContext.getSystemService(mContext.LAYOUT_INFLATER_SERVICE);
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
View view;
view = inflater.inflate(R.layout.camera, null, false);
p = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT);
p.gravity = Gravity.TOP | Gravity.CENTER;
p.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
windowManager.addView(view,p);
R.layout.camera 내가 내 카메라를 추가 단지 FrameLayout이보기입니다 레이아웃 :
은 여기에 서비스하는 방법에서 실행 내 창 관리자 코드입니다. 카메라가 정상적으로 작동 중입니다. 아래에서 실행중인 내 활동은 WindowManager 인스턴스가 다시 가로로 돌아갈 때까지 인물이어야합니다. 네, 매니 페스트에 초상화 태그가 있습니다.
편집 : 추가 조사를 통해 윈도우 관리자가 내 활동을 파괴하고 다시 만들고 실행하면 모든 것이 가로 모드로 되돌아갑니다. 나는 심지어 활동의 onCreate에서 오리엔테이션을 동적으로 설정하려고 시도했지만, 그 중 하나는 작동하지 않았습니다. 위의 모든 윈도우 관리자 코드로 서비스를 중지하면 내 활동이 세로 모드로 돌아갑니다.
해결책을 찾았습니까? 동일한 문제에 직면하고 있습니다. –