代码如下:
  @Override
    public void onCallStateChanged(int state, String incomingNumber) {        if(lastState == TelephonyManager.CALL_STATE_RINGING&&
                state == TelephonyManager.CALL_STATE_IDLE){//当前状态为空闲,而上次为响铃,则判断为未接来电
            Log.d("MainActivity","phone number:"+incomingNumber);
        }
        lastState = state;
        super.onCallStateChanged(state,incomingNumber);
    }Log打印如下:
12-14 10:38:21.607    9291-9291/com.smstest D/MainActivity﹕ phone number:求大神解释一下啊,不甚感激

解决方案 »

  1.   

     Log.d("MainActivity","phone number:"+incomingNumber); 放在条件外面试一下是不是CALL_STATE_IDLE 是没号码或没权限
      

  2.   

    放在外面是可以的,像华为的手机,是可以获取incomingnumber的,但是小米的手机为Null。感觉是不是系统定制的原因?
      

  3.   

    你好,这个问题你解决了么,我现在遇到了这个问题,现在我手上的小米6手机无法获取到incomingNumber的,返回的是空
      

  4.   

    需要获取READ_CALL_LOG(通讯录)权限才可以