Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> android中廣播接收者BroadcastReceiver

android中廣播接收者BroadcastReceiver

編輯:高級開發

 廣播接收者通過androidManifest.XML中< receiver>配置,過濾接收指定信息內容。如下:過濾接收短信息。

  第一步:

  在androidManifest.XML中

  < application android:icon="@drawable/icon" android:label="@string/app_name">

  < receiver android:name=".MyBroadcastReceiver">

  < intent-filter>

  < action android:name="android.provider.Telephony.SMS_RECEIVED"/>

  < /intent-filter>

  < /receiver>

  < uses-permission android:name="android.permission.RECEIVE_SMS"/>< !-- 接收短信權限 -->

  < uses-permission android:name="android.permission.SEND_SMS"/>< !-- 發送短信權限 -->

  < /application>

  第二步:

  public class MyBroadcastReceiver extends BroadcastReceiver {

  private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";

  @Override public void onReceive(Context context, Intent intent) {

  if (intent.getAction().equals(SMS_RECEIVED)) {

  SmsManager sms = SmsManager.getDefault();

  Bundle bundle = intent.getExtras();

  if (bundle != null) {

  Object[] pdus = (Object[]) bundle.get("pdus");

  SmsMessage[] messages = new SmsMessage[pdus.length];

  for (int i = 0; i < pdus.length; i++) messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);

  for (SmsMessage message : messages){

  String msg = message.getMessageBody();

  String to = message.getOriginatingAddress();

  sms.sendTextMessage(to, null, msg, null, null);

  }}}}}

  補充說明:除了短信到來廣播Intent,android還有很多廣播Intent,如:開機啟動、電池電量變化、時間已經改變等廣播Intent。

  接收電池電量變化廣播Intent ,在androidManifest.XML文件中的< application>節點裡訂閱此Intent:

  < receiver android:name=".MyBroadcastReceiver">

  接上頁

  < intent-filter>

  < action android:name="android.intent.action.BATTERY_CHANGED"/>

  < /intent-filter>

  < /receiver>

  接收開機啟動廣播Intent,在androidManifest.XML文件中的< application>節點裡訂閱此Intent:

  < receiver android:name=".IncomingSMSReceiver">

  < intent-filter>

  < action android:name="android.intent.action.BOOT_COMPLETED"/>

  < /intent-filter>

  < /receiver>

  並且要進行權限聲明:

  < uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved