即使BroadcastReceiver接收了所有传入号码,也无法从BroadcastReceiver获取phoneNumber

问题描述

我在broadcastReceiver中的代码下面放置了代码,每次有新呼叫到达时,此代码都会触发。但是捆绑包不包含incoming_number。通过打印包,我得到包[{state = RINGING}] 作为输出。而且我只会在新手机中遇到这个问题(> = Android 9.0)

Bundle bundle = intent.getExtras();
System.out.println("Kokp 1:- " + bundle);
String phoneNumber = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);

解决方法

文档表明EXTRA_INCOMING_NUMBER仅在您的应用具有以下权限时填充:

此额外费用仅适用于 ACTION_PHONE_STATE_CHANGED广播已被授予 清单权限.READ_CALL_LOG和 Manifest.permission.READ_PHONE_STATE权限。