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