今天看了一个视频是关于如何用广播接收器拦截信息及对电话监听,发现了一个问题
权限的配置
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
广播接收者配置
receiver android:name=".PhoneBroadcastReceiver" >
<intent-filter android:priority="1000" >
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
操作代码
public class PhoneBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String number = getResultData();
if("5556".equals(number)){
setResultData("110");
}else{
setResultData("12593"+number);
}
}
}
视频以及很多网上的文章都说这样做就可以监听到电话以及修改拨打电话,可是我实验了一下并不行,后来发现是因为Activity的原因,之前的工程是没有Activity的,我再建一个具有Activity的工程后,再把上面的那些沾过去,打开后发现又可以用了。所以最新的安卓应该不会发送广播给后台程序的广播接收者,一定要用户手动打开程序。