2011-05-04 253 views

回答

3

是你可以....擴展廣播接收器和覆蓋的onReceive爲以下

public class CallListener extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) { 
      String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER); 
      System.out.println(phoneNumber); 

      if (phoneNumber != null&& CallService.phoneNumber.equals("ANY_NUMBER_YOU_WANNA_INTERCEPT_ON")) { 

       //do what you want to do :) 
      } 
     } 

    } 

,你將需要添加您的廣播接收器在AndroidManifest.xml中,如下所示

<receiver android:name=".CallListener" android:permission="android.permission.PROCESS_OUTGOING_CALLS"> 
     <intent-filter> 
      <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
     </intent-filter> 
</receiver> 
1

您可以使用PhoneStateListener自定義broadcast receiver,它可以讓您onCallStateChanged(int state, String incomingNumber)

(你還需要<uses-permission android:name="android.permission.READ_PHONE_STATE" />在AndroidManifest。)

+0

感謝Ben Williams,我想在用戶撥打電話時獲取號碼。撥打電話的號碼。 – shebelaw 2011-05-04 14:49:27

+0

我不確定你可以直接使用,但是如果你正在監聽電話狀態變化,你應該能夠告訴呼叫何時結束,然後立即調用'CallLog.Calls'和'getLastOutgoingCall'給你上次被叫號碼。 – 2011-05-04 14:59:55

+0

坦克。我會看看這個。但我真正想要的是在呼叫處於活動狀態或呼叫按鈕被選中時獲取號碼。 – shebelaw 2011-05-04 16:54:52