这是一个通过广播接收者来实现的拦截电话号码的例子
TeleBroadcastReceiver.java
package com.lk.msmlistener; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class TeleBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String telFrom = getResultData(); if("5556".equals(telFrom)) { setResultData(null); //当给5556打电话时,拦截拨打 } else { setResultData("17951" + telFrom); //当给其他人电话时,在开头加上17951 } } }
在清单文件中配置权限和声明BroadcastReceiver
<!-- 拨打电话号码时获取电话号码的权限 --> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<receiver android:name="com.lk.msmlistener.TeleBroadcastReceiver"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver>