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