Package version 12

Intent.AddBroadcastReceiverメソッド変更履歴

Android

 

説明

受信対象のブロードキャストインテントを登録します。

 

登録後、対象のブロードキャストインテントを受信した場合、BroadcastReceivedイベントが発生します。

 

呼出形式

intent1.AddBroadcastReceiver( intentFilter or action [, flag] )

 

戻り値

なし

 

引数

XmlDocument intentFilter

 

受信対象のブロードキャストインテントを絞り込むIntentFilterを指定します。

このIntentFilterには最低でも一つのaction タグが必要で、ここに受信対象のブロードキャストインテントのアクションを指定します。

 

例として、2種類のactionを受け付けるIntentFilterを登録するには下記のように記述します。

var intentFilter = new XmlDocument();
intentFilter << XML <<-
  <intent-filter xmlns:android="http://schemas.android.com/apk/res/android">
        <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
        <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
  </intent-filter>
->>;
Intent intent1;
intent1.AddBroadcastReceiver(intentFilter);

IntentFilterの記述方法につきましては AndroidManifest.xmlのintent-filterタグの記述方法(外部リンク)をご参照下さい。

 

 

String action

 

受信対象のブロードキャストインテントのactionを指定します。

受信すべきactionが一つのみで、他のパラメータが不要な場合、intentFilter引数指定より簡易に指定可能です。

 

 

integer flag

 

ブロードキャストレシーバーを他のアプリに公開するかどうか等のオプションを指定します。*1

この引数はAndroid 14以降のOSでのみ有効です。

 

以下の値が定義されています。

定数

説明

Intent.RECEIVER_NO_FLAG

0

フラグを設定しません。

Intent.RECEIVER_EXPORTED

2

他のアプリケーションから送信されたブロードキャストを受信できます。

Intent.RECEIVER_NOT_EXPORTED

4

自分のアプリケーションから送信されたブロードキャスト、およびシステムからのブロードキャストのみ受信できます。

省略した場合はIntent.RECEIVER_EXPORTEDとなります。

 

例外

FUNC-4

引数の値が不正です

 

EXTOBJ-27

IntentFilterの構築に失敗しました

 

EXTOBJ-30

 

BroadcastReceiverの追加に失敗しました

 

使用例

Intent batteryChangedReceiver {
  /* バッテリ状態変化のブロードキャストインテントを受け取り、バッテリ残量と充電状態を表示します */
  Function OnBroadcastReceived(e) {
    if(e.ReceivedIntent.Action == "android.intent.action.BATTERY_CHANGED") {      
      var batteryStatus = "";
      /* バッテリ残量を取得 */
      var batteryScale = e.ReceivedIntent.GetExtra(Intent.TYPE_INT, "scale");
      var batteryLevel = e.ReceivedIntent.GetExtra(Intent.TYPE_INT, "level");
      if(batteryScale > 0) {
        var batteryPercent = int(batteryLevel / batteryScale * 100);
        batteryStatus += "バッテリ残量 : " + str(batteryPercent) + "%";
      } else {
        batteryStatus += "バッテリ残量 : 不明";
      }
      /* バッテリ充電状態を取得 */
      var batteryPlugged = e.ReceivedIntent.GetExtra(Intent.TYPE_INT, "plugged");
      if(batteryPlugged > 0) {
        batteryStatus += " (充電中)";
      } else {
        batteryStatus += " (放電中)";
      }
      /* 表示 */
      //.Title = batteryStatus;
    }
  }
}
/* ブロードキャストインテントの受信対象を指定するIntentFilterを作成します */
var intentFilter = new XmlDocument();
intentFilter << XML <<-
  <intent-filter xmlns:android="http://schemas.android.com/apk/res/android">
    <action android:name="android.intent.action.BATTERY_CHANGED"/>
  </intent-filter>
->>;
/* ブロードキャストインテント受信を開始します */
batteryChangedReceiver.AddBroadcastReceiver(intentFilter);

関連項目

ClearBroadcastReceiverメソッド、BroadcastReceivedイベント

 

変更履歴
*1 Package Version 29で追加されました。


「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る