- 構文:
<receiver android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"] android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </receiver>
- 上位の要素:
<application>- 含めることのできる要素:
<intent-filter><meta-data><property>- 説明:
- ブロードキャスト レシーバ(
BroadcastReceiverサブクラス)をアプリのコンポーネントの一つとして宣言します。ブロードキャスト レシーバを使用すると、アプリの他のコンポーネントが実行されていない場合でも、システムまたは他のアプリからブロードキャストされたインテントをアプリで受信できます。ブロードキャスト レシーバの存在をシステムに知らせる方法は 2 つあります。一つは、マニフェスト ファイルでこの要素を使用して宣言する方法です。もう一つは、コードでレシーバを動的に作成して、
Context.registerReceiver()メソッドかオーバーロードされたいずれかのバージョンで登録する方法です。レシーバを動的に作成する方法について詳しくは、
BroadcastReceiverクラスの説明をご覧ください。このレシーバがシステム以外のブロードキャストを処理する場合は、
android:exportedの値を指定します。レシーバが他のアプリからのブロードキャストを受信できるようにする場合は、この値を"true"に設定し、レシーバが自身のアプリからのブロードキャストのみを受信できるようにする場合は、"false"に設定します。android:permission属性をすでに宣言している場合は、削除する必要はありません。警告: アプリで設定するブロードキャスト レシーバの数を制限してください。ブロードキャスト レシーバが多すぎると、アプリのパフォーマンスやユーザーのデバイスのバッテリー駆動時間に影響することがあります。バックグラウンド処理のスケジュール設定用に
BroadcastReceiverクラスの代わりに使用できる API について詳しくは、バックグラウンド処理の最適化をご覧ください。 - 属性:
android:directBootAwareブロードキャスト レシーバがダイレクト ブートに対応しているかどうか、つまり、ユーザーがデバイスのロックを解除する前にアクティビティを実行できるかどうか。
注: ダイレクト ブート中、アプリのブロードキャスト レシーバはデバイス保護ストレージに保存されているデータにのみアクセスできます。
デフォルト値は
"false"です。android:enabled- システムがブロードキャスト レシーバをインスタンス化できるかどうか。できる場合は
"true"、できない場合は"false"です。デフォルト値は"true"です。<application>要素には、ブロードキャスト レシーバを含むすべてのアプリ コンポーネントに適用される独自のenabled属性があります。ブロードキャスト レシーバを有効にするには、<application>属性と<receiver>属性の両方を"true"に設定する必要があります。いずれかが"false"の場合、無効になり、インスタンス化できません。 android:exported- ブロードキャスト レシーバがアプリ外のシステム以外のソースからメッセージを受信できるかどうかを指定します。できる場合は
"true"、できない場合は"false"です。"false"に設定すると、ブロードキャスト レシーバは、システム、同じアプリのコンポーネント、またはユーザー ID が同一のアプリから送信されたメッセージしか受信できなくなります。指定しない場合のデフォルト値は、ブロードキャスト レシーバにインテント フィルタが含まれているかどうかによって異なります。レシーバにインテント フィルタが 1 つ以上含まれている場合、デフォルト値は「
"true"」です。それ以外の場合のデフォルト値は"false"です。この属性を使用すること以外にもブロードキャスト レシーバの外部への公開を制限する方法はあります。ブロードキャスト レシーバにメッセージを送信可能な外部エンティティを制限する権限を使用することもできます。
permission属性をご覧ください。 android:icon- ブロードキャスト レシーバを表すアイコン。この属性は、画像の定義を含むドローアブル リソースへの参照として設定されます。この属性を設定しなかった場合、アプリ用に指定されているアイコンが代わりに使用されます。
<application>要素のicon属性をご覧ください。ブロードキャスト レシーバのアイコンは、この属性と
<application>要素のどちらで設定したかに関係なく、レシーバのすべてのインテント フィルタの デフォルト アイコンにもなります。<intent-filter>要素のicon属性をご覧ください。 android:intentMatchingFlags-
この属性を使用して、システムが受信インテントをアプリ コンポーネントに照合する方法を微調整します。デフォルトでは、特別な照合ルールは適用されません。
<receiver>タグに設定された値は、<application>タグに設定された値をオーバーライドします。値は、次のフラグを 1 つ以上含める必要があります(「
|」で区切ります)。フラグ 説明 none受信インテントの特別な照合ルールをすべて無効にします。複数のフラグを指定する場合、競合する値は noneフラグが優先されます。enforceIntentFilter受信インテントの照合を厳格にします。
- 明示的なインテントは、ターゲット コンポーネントのインテント フィルタと一致する必要があります。
- アクションのないインテントは、どのインテント フィルタにも一致しません。
allowNullAction照合ルールを緩和して、アクションのないインテントを照合できるようにします。 このフラグは
enforceIntentFilterと組み合わせて使用し、 次の動作を実現します。- 明示的なインテントは、ターゲット コンポーネントのインテント フィルタと一致する必要があります。
- アクションのないインテントは、任意のインテント フィルタと照合できます。
詳細については、Android 16(API レベル 36)の動作変更の インテントの安全性を高める をご覧ください。
android:label- ユーザーが読むことができる、ブロードキャスト レシーバ用のラベル。 この属性を設定しなかった場合、アプリ用に設定されているラベルが代わりに使用されます。
<application>要素のlabel属性をご覧ください。ブロードキャスト レシーバのラベルは、この属性と
<application>要素のどちらで設定したかに関係なく、レシーバのすべてのインテント フィルタの デフォルト ラベルにもなります。<intent-filter>要素のlabel属性をご覧ください。ラベルは文字列リソースへの参照として設定します。そうすることで、ユーザー インターフェースの他の文字列と同じようにローカライズできるようになります。ただし、アプリ開発の便宜上、未加工の文字列として設定することもできます。
android:name- ブロードキャスト レシーバ(
BroadcastReceiverのサブクラス)を実装するクラスの名前。これは完全修飾クラス名です("com.example.project.ReportReceiver"など)。ただし、 短縮形として名前の最初の文字をピリオドにした場合、たとえば".ReportReceiver"、 要素で指定したパッケージ名に付加されます。<manifest>アプリの公開後は、この名前を変更しないでください。ただし、
android:exported="false"を設定した場合は除きます。デフォルト値はありません。名前の指定は必須です。
android:permission- ブロードキャストの送信者がブロードキャスト レシーバにメッセージを送信するために必要な権限の名前。この属性が設定されていない場合、
<application>要素のpermission属性で設定された権限がブロードキャスト レシーバに適用されます。どちらの属性も設定されていない場合、レシーバは権限によって保護されません。権限についての詳細は、アプリ マニフェスト概要の権限のセクションと、セキュリティに関するヒントをご覧ください。
android:processブロードキャスト レシーバの実行プロセスの名前。 通常、アプリ コンポーネントはすべて、そのアプリ用に作成されたデフォルト プロセス内で実行されます。このプロセスの名前はアプリ パッケージと同じです。
<application>要素のprocess属性を使用すると、すべてのコンポーネントに対して異なる デフォルト値を設定できます。ただし、各コンポーネントは、それぞれのprocess属性でデフォルト値をオーバーライドできます。これにより、アプリを複数のプロセスに分散できます。この属性に割り当てられた名前がコロン(「
:」)で始まる場合、必要に応じてアプリ専用の新しいプロセスが作成され、そのプロセス内でブロードキャスト レシーバが実行されます。プロセス名が小文字で始まる場合、レシーバはその名前のグローバル プロセス内で実行されます(その権限がある場合)。これにより、異なるアプリのコンポーネント間で 1 つのプロセスを共有して、リソース使用量を削減できます。
- 導入時の API レベル:
- API レベル 1
<受信者>
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2026-07-03 UTC。
[null,null,["最終更新日 2026-07-03 UTC。"],[],[]]