我一直在传出号码上获得 null 值,我尝试了一些来自网络的解决方案。
在我的 list 中,我有这些相关的行
<uses-permission android:name="android.permission.READ_PHONE_STATE" ></uses-permission>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" > </uses-permission>
<receiver android:name=".home.OutgoingReceiver" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" >
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</action>
</intent-filter>
</receiver>
我的接收器看起来像这样,你会注意到我一直在尝试以各种方式在这里检索数字,但我一直得到空值
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
final String originalNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER).toString();
Log.d("APP", "outgoing,ringing:" + originalNumber);
}
String ph = intent.getExtras().getString(OutgoingReceiver.INTENT_PHONE_NUMBER);
// savedNumber = intent.getExtras().getString("android.intent.extra.PHONE_NUMBER");
String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
String phoneNumber = getResultData();
if (phoneNumber == null) {
// We could not find any previous data. Use the original phone number in this case.
phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
}
String phoneNumberTest = intent.getExtras().getString(OutgoingReceiver.INTENT_PHONE_NUMBER);
最佳答案
首先将其添加到您的 list 中:
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
然后将其添加到您的接收器:
if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) {
String outoingNumber = intent.getExtras().getString("android.intent.extra.PHONE_NUMBER");
return;
}
关于java - 如何获取正在调用的号码,android中的拨出号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38825321/