구현하고자 하는거는 전화 벨 울릴때 전화 발신자 번호를 받고, 수신자가 전화를 받으면 토스트로 띄어주는것 입니다.

 

public class MyReceiver extends BroadcastReceiver {
    static String incomingNum;

    static int phone_flag = 0;

   public void onReceive(Context context, Intent intent){

           if(newState.equals(TelephonyManager.EXTRA_STATE_RINGING))

          {   

                 phone_flag = 1;    incomingNum = b.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);   

           }  

           if(newState.equals(TelephonyManager.EXTRA_STATE_OFFHOOK) && phone_flag==1)

           {                 

              Toast.makeText(context, "전화 : "+ incomingNum, Toast.LENGTH_SHORT).show();

                }

           if(newState.equals(TelephonyManager.EXTRA_STATE_IDLE))    {            phone_flag = 0;         }
  }

 

 

여기서 처음 전화를 감지하여 벨이 울리면 ocReceive()가 호출되어서 벨이 울릴때 if구문으로 들어가서 실행합니다.

그래서 phone_flag가 1이 되고, 발신자 전화번호를 가져옵니다

그러나 벨 울린다음 수신자가 전화를 받으면 if 두번째 구문으로 넘어가게 하고 싶은데 MyReceiver 클래스가 재호출되는건지 phone_flag 가 0이되어서 두번째 구문을 실행하지 못합니다.........

 

이런식으로 하면 해결할 수 없는것 인가요?

 

조언 좀 주시면 감사하겠습니다.ㅠㅠ