BroadcastReceiver를 써서 전화가 오는 이벤트를 받아서 그안에서 전화 번호를 가져 오고 있는데요 

 

수신번호를 잘가지고 오다가도 어쩔때는 수신번호에 null이 들어 옵니다.  

 

로그를 찍어보면  BroadcastReceiver를 타고 상태정보가 링까지는 오는데 전화 번호를 null 가져 옵니다. 왜 이럴까요?

 

상태가 링까지 왔다는 거는 BroadcastReceiver를 정상적으로 들어 왔다는건데. 번호만 찍으면 널입니다.

 

BroadcastReceiver를 등록 해 줬으니까 전화수신이 오면  실행되서 전화번호를 가져와야 하는게 아닌건가요?

 

 public class BRCallState extends BroadcastReceiver {
 @Override
 public void onReceive(Context context, Intent intent) {
  
  
  // TODO Auto-generated method stub
  String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
  Bundle bundle = intent.getExtras();
  String inNm = null;
if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL))
  {  
   
   inNm = bundle.getString(Intent.EXTRA_PHONE_NUMBER);
   
  }  
  else if(state.equals(TelephonyManager.EXTRA_STATE_IDLE))
  {
   //통화 종료 후 구현 ...
   
  }
  else if(state.equals(TelephonyManager.EXTRA_STATE_RINGING))
  {
       //통화 벨 울릴 시 구현 ...   
   inNm = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
   
  }
  else if(state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK))
  {
   //통화 중 상태일 때 구현 ...
   
  }
 }