Android 广播机制以及用法详解
转: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>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。