在android中監聽呼出電話(電話攔截、修改呼出電話)

在android中向外撥打電話時系統會發出一個有序廣播,雖然該廣播最終會被拔號器裏的廣播接收者所接收並實現電話拔打,但咱們能夠在廣播傳遞給拔號廣播接收者以前先獲得該廣播,而後清除傳遞給拔號廣播接收者的電話號碼,在拔號廣播接收者接收到該廣播時,因爲電話號碼爲null,所以取消電話拔打。
具體實現:
1.定義廣播接收者接收 android.intent.action.NEW_OUTGOING_CALL
<receiver android:name=".OutgoingCallReceiver">
    <intent-filter android:priority="1">
         <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
    </intent-filter>
</receiver>
2.添加權限 < uses-permission  android:name = "android.permission.PROCESS_OUTGOING_CALLS" />
3.實現代碼
public class OutgoingCallReceiver extends BroadcastReceiver {
     public void onReceive(Context context, Intent intent) {
           setResultData(null); //清除電話,廣播被傳給系統的接收者後,由於電話爲null,取消電話拔打
      
          // 一樣若是你想修改外拔的電話號碼,能夠這樣作
          // String phone = getResultData();//獲得外拔電話
          // setResultData(「12593」+ phone);//在電話前面加上12593
     }
}
相關文章
相關標籤/搜索