Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取所有android版本的来电电话号码_Android_Phone Number_Telephonymanager_Phone State Listener - Fatal编程技术网

获取所有android版本的来电电话号码

获取所有android版本的来电电话号码,android,phone-number,telephonymanager,phone-state-listener,Android,Phone Number,Telephonymanager,Phone State Listener,我正在尝试获取传入呼叫的传入号码。我找了一下,找到了这个 . 我的问题是,我无法在4.0.3以上的版本中输入“传入号码”。 如果我做错了什么,请指导我,或者如何在4.0.3以上的版本中获取传入号码。 提前谢谢。 以下是代码: TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); telephony.listen(new PhoneStateListen

我正在尝试获取传入呼叫的传入号码。我找了一下,找到了这个 . 我的问题是,我无法在4.0.3以上的版本中输入“传入号码”。 如果我做错了什么,请指导我,或者如何在4.0.3以上的版本中获取传入号码。 提前谢谢。 以下是代码:

TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(new PhoneStateListener(){
   public void onCallStateChanged(int state, String incomingNumber) {
       super.onCallStateChanged(state, incomingNumber);
          switch (state) {
              // not getting incoming number in latest version of android
              Log.e(Utils.TAG, "incomingNumber: "+incomingNumber);
          }
    }
},PhoneStateListener.LISTEN_CALL_STATE);

在清单中创建接收者:

<receiver android:name=".PhoneState">  
    <intent-filter>
         <action android:name="android.intent.action.PHONE_STATE"/> 
    </intent-filter>
</receiver>

在清单中创建接收者:

<receiver android:name=".PhoneState">  
    <intent-filter>
         <action android:name="android.intent.action.PHONE_STATE"/> 
    </intent-filter>
</receiver>

我遇到了同样的问题。 使用以下代码修复:

if (ActivityCompat.checkSelfPermission(this,
    Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[]
    {Manifest.permission.READ_PHONE_STATE},3);
} 

我遇到了同样的问题。 使用以下代码修复:

if (ActivityCompat.checkSelfPermission(this,
    Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[]
    {Manifest.permission.READ_PHONE_STATE},3);
}