Android在拨打电话时会发送一个Action为android.intent.action.NEW_OUTGOING_CALL的广播,系统拨号器收到广播后启动执行拨号操作,所以,要拦截拨号动作,只需要拦截这个广播,并阻止其继续传播,即可。 写个BroadCast,在AndroidManifest.xml中注册:
<receiver android:name=".CallReceiver" >
<intent-filter android:priority="1000">
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
android:priority为设置广播接收器的优先级。系统的拨号器是1 在BroadcastReceiver中,可以使用clearAbortBroadcast()方法阻止广播继续传播。