转:http://blog.sina.com.cn/s/blog_5da93c8f010178zl.html
这里接收短信的广播是有序广播,因此可以设置你自己的广播接收器的级别高于系统原来的级别,就可以拦截短信,并且不存收件箱,也不会有来信提示音。
实现方法是:
<receiver android:name=".SmsReceiver" >
<intent-filter android:priority="2147483647" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
里面的android:priority="2147483647",就是设定广播接收器的级别,intent-filter 标签中的 priority 是设置广播接收器的优先级,网上很多资料都表示,优先级的设置数值为1000~-1000,1000最大,但事实上,当 priority 值为integer 的最大值才时,才是优先级最高的,即 2147483647;当然,“最高”只是限于静态注册。
两种注册BroadcastReceiver的方法:
1.在应用程序的代码中进行注册
注册:BroadcastReceiver
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
filter.setPriority(2147483647);
receiver=new BroadReceiver();
registerReceiver(receiver,filter);
取消注册BroadcastReceiver
unregisterReceiver(receiver);
2.在AndroidManifest.xml当中进行注册
<receiver android:name="SMSReceiver">
<intent-filter android:priority="2147483647" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>