1. 어플은 백그라운드 상태로 대기

2. 전화가 온다면 백그라운드 상태의 어플은 조도/근접센서로 센서값 얻어옴

3. 만약 어둡고 좁다면 벨소리를 최대치로 설정.

4. 전화통화 후에 다시 벨소리를 기존의 값으로 설정.

5. 대기

 

 

이런 구조로 짜려고 합니다.

지금 백그라운드에서 동작하며 벨소리 증가는 하였는데,

어플리케이션이 태스크킬러류의 어플에 의해 사망하는 경우 벨소리 값을 최대치로 바꿔놓은 상태이기 때문에

알람을 이용한 어플 되살리기 후에도 최대치를 계속 유지한다는 점입니다.

그래서 "전화수신중에만" 이라는 조건을 걸고 싶은데요.

전화수신이라는 상태변화만 간단하게 따올 수 있는 방법이 궁금합니다.

혹은 해당 어플 말고 다른 부분에 볼륨값을 따로 저장할 수 있는지요

 

 if((light_cond==1)&&(prox_cond==1)){
        
         audio_manager.setStreamVolume(AudioManager.STREAM_RING,set_volume,0); 
         }else{
                   
         audio_manager.setStreamVolume(AudioManager.STREAM_RING,sys_volume,0);
         }


볼륨값이 이렇게 넘겨지기 때문인것도 같습니다만...

볼륨값을 어디든지 저장해 관리한다 해도 킬러류의 어플에 죽었다 살아나면 처음부터 실행되는게 문제입니다.