一、電話攔截器應用說明
在我們輸入完電話號碼並撥打到電話時,系統會發出一個有序廣播(action="android.intent.action.NEW_OUTGOING_CALL"),並且預計會發送給電話撥號器應用的廣播接收者,但是我們可以設定一個優先順序更高的攔截器廣播接收者(android:priority="1000"),使得在撥號器的廣播接收者收到電話之前將電話清空,:
由於此應用應該比較隱蔽,因此需要開機自啟動,當開機自啟動時,系統會發出一個廣播,啟用滿足條件的組件(action="android.intent.action.BOOT_COMPLETED");
二、代碼實現
AndroidManifest.xml
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/><!-- 外界撥打許可權 --><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/><!-- 接收開機廣播 --><application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <receiver android:name=".PhoneBroadcastReceiver"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver></application>
PhoneBroadcastReceiver.java
package com.xiazdong.phonelistener;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class PhoneBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {if("5556".equals(this.getResultData())) this.setResultData(null);//如果電話是5556,則清空,不讓他撥打}}