一.創建一個類,繼承BroadcastReceiver類並實現onRecive方法。
[java]
- public class TestReceiver extends BroadcastReceiver{
- //構造函數
- public TestReceiver(){
- system.out.print(“TestReceiver類的構造函數!”);
- }
- //當接收到廣播後執行的代碼
- @override
- public void onReceive(Context context , Intent intent){
- System.out.println(“onReceive”);
- }
- }
二.在AndroidManifest.xml中注冊廣播接收條件。注意:在XML文件中注冊廣播會使程序在任何時候接收廣播,即便軟件關閉後也繼續接收。
[html]
- 在AndroidManifest.xml文件的<application></application>之間加入如下代碼
- // android:name=”.TestReceiver”為繼承BroadcastReceiver類的類名
- <receiver android:name=”.TestReceiver”>
- <intent-filter>
- //設置接收廣播的條件。只有接收到的廣播的條件和action標簽中的條件相同時才會執行TestReceiver類。
- <action android:name=”android.intent.action.EDIT”>
- </intent-filter>
- </receiver>
=====================================================================
三.創建一個按鈕單機事件,測試發送一個廣播。
[java]
- //創建一個Intent實例,存儲廣播數據
- Intent intent = new Intent();
- //設置接收廣播所需要的條件。
- //Intent有許多android內置的條件(詳見幫助文檔的Intent)
- inent.setAction(Intent.ACTION_EDIT);
- //發送一個廣播
- TestActivity.this.sendBroadcast(intent);
=================================================================
四.使用代碼創建一個廣播接收者
在按鈕的Onclick事件中添加如下代碼
[java]
- //實例化處理類。TestReceiver為第一步創建的類名
- receiverTest = new TestReceiver ();
- //創建一個IntentFilter對象,用於存放接收廣播的條件
- IntentFilter intentFilter = new IntentFilter();
- //向IntentFilter對象中添加廣播接收的條件
- intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
- //注冊廣播接收器。
- //第一個參數為BroadcastReceiver實例對象.
- //第二個參數為廣播篩選器。
-
- BroadcastReceiverTestActivity.this.registerReceiver(receiverTest, intentFilter);
[java]
- //卸載廣播接收器試用如下代碼:
- //receiverTest是廣播處理類對象。
- BroadcastReceiverTestActivity.this.unregisterReceiver(receiverTest);
五.注意:
在AndroidManifest.xml文件中注冊的廣播接收器會在任何時候接收系統的廣播,即使軟件關閉以後也會繼續接收廣播。
在代碼中注冊廣播接收器可以根據需要來注冊或卸載廣播接收器。
六.接收短信的廣播需要添加短信廣播接收權限。
[html]
- <uses-permission Android:name="android.permission.RECEIVE_SMS"/>