전화가 오면 전화 받은 시각과

 

전화가 끝났을 때 전화가 끝난 시간을 기록하는 어플을 제작중입니다.

 

public   FILE fp = null;  // 여기에 파일 포인터가 추가되었습니다.

 
TelephonyManager telMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
     telMgr.listen(new PhoneStateListener() {
               public void onCallStateChanged(int state, String incomingNumber) {
  
                switch (state) {
                   
                    case TelephonyManager.CALL_STATE_OFFHOOK:
                    Log.e("통화 시작", "통화 시작");  //로그를 남기고
                   //현재 시간 구해서 파일에 저장      
                   break;
                   case TelephonyManager.CALL_STATE_IDLE: 
                   if(fp != null)
                  {
                      Log.e("통화 종료", "통화 종료");
                     //종료 시간 구해서 파일에 저장
                   }
      break;
                }
           }
      }, PhoneStateListener.LISTEN_CALL_STATE);

 

코드는 위와 같은데요..

 

IDLE 상태를 탐지하도록 코드를 구성했는데요..

 

전화가 끊어진게 아니고, 통화는 계속 중인데 휴대폰이 대기상태(화면 전원이 나가는 상태)

로 들어가게 되면 IDLE 이벤트가 발생해서 통화중임에도 불구하고 통화 종료 시간을 기록해 버립니다.

 

정확하게 통화 종료 이벤트를 받으려면 어떻게 해야할까요??

 

도와주세요