轉: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>