안드로이드 개발 질문/답변
(글 수 45,052)
지금 개발중인 프로그램에 타사에서 제공하는 프로그램과 연계하는 기능이 있습니다.
본 프로그램에서 버튼을 클릭하면 아래와 같이 호출하여 타사 프로그램을 실행시키고 있습니다.
Intent intent = new Intent();
intent.setClassName("packageName", "className");
startActivity(intent);
그런데 문제는 본 프로그램에 SensorManager 를 이용하여 가속센서 값에 의하여 화면의 밝기 제어하는 기능을 추가 하였는데
본프로그램에서 불러온 타사 프로그램 화면도 같은 기능이 적용되도록 하고 싶습니다.
화면 밝기 조절은 아래와 같은 코드를 사용하고 있습니다.
Window w = getWindow();
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 밝기조절값;
w.setAttributes(TaregtWinlp);
그럼 getWindow() 로 제어하려는 window 를 얻어야 그 화면의 밝기 조절을 적용 시킬수 있을거 같은데..
본프로그램에서 startActivity(intent) 로 실행시킨 타 패키지 프로그램의 window 를 받아 올수 있는 방법이 궁금합니다.
아님 다른 제어할수 있는 방법이 있는지..
아직 초보라 하나의 기능을 추가하려면 검색하고 테스트하고 시간이 많이 걸리네요..
부디 해결 방법이 있었으면 합니다.
고수분들의 조언을 부탁드립니다.




SensorManager 데이터를 관리하는걸 Service에서 만드신다음에 밝기 조절을 시도해 보시는건 어떨까요?
저도 해보질 않아서 이렇다 저렇다 확실하게 말은 못할거 같은데..
1. 본인 Activity에서 Sensor data를 처리 하여 하면 밝기 조절 루틴이 있다.
2. 타 Activity 를 호출하여 Task 에 pop 시켜 노드를 연결하였는데.. 이때 화면 제어를 다른 Activity가 하게되므로..
본인이 만든 Sensor data 처리 루틴이 백그라운드처리 되어 데이터 처리를 못하게 된다
3. 백그라운드 처리 되어 센서 데이터를 못가져 오고 , 화면제어를 잃어서 발기 조절을 못한다.
요런 상황이니.. 서비스에서 만들어서 백그라운드에서도 데이터 처리가 가능하게 만들고..화면제어는 WindowManager로 부터
처리 하는 방법을... 만약 제약 상황이 된다면 Reflection으로 WindowManagerImpl.class 를 가져와서 핸들링 하시면....
.........
.........
될지 안될지..안해봐서 ㅋㅋ
의외로 쉽게 해결 될지도 모르니 힘내세요~!