有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何获取正在拨打的号码,安卓中的传出号码

我一直得到一个空值的传出号码,我已经尝试了几个解决方案从网上

在我的清单中,我有这些相关的行

 <uses-permission 安卓:name="安卓.permission.READ_PHONE_STATE" ></uses-permission>

<uses-permission 安卓:name="安卓.permission.PROCESS_OUTGOING_CALLS" > </uses-permission>
  <receiver 安卓:name=".home.OutgoingReceiver"  安卓:exported="true">
           <intent-filter>
               <action 安卓:name="安卓.intent.action.PHONE_STATE" >
                   <action 安卓:name="安卓.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("安卓.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);

共 (1) 个答案

  1. # 1 楼答案

    首先将其添加到您的清单中:

    <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;
            }