1. ホーム
  2. android

[解決済み] BroadcastReceiverのandroid:exported="true "の使い方を教えてください。

2022-02-14 10:42:56

質問

こんにちは、私はいくつかの放送受信機がこのタグを使用していることを参照してください。 android:exported="true" をAndroid Manifest.xmlに登録する必要があります。

<receiver android:exported="true" android:name="com.flyingsoftgames.googleplayquery.QueryReceiver">
    <intent-filter>
       <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>

の具体的な使い方は? android:exported="true" を使用してブロードキャストレシーバを登録できますか?

よろしくお願いします。

どのように解決するのですか?

からの デベロッパーガイド :

android:exported ブロードキャスト受信機が、そのアプリケーションの外部からのメッセージを受信できるかどうか - 受信できる場合は "true"、できない場合は "false"。false"の場合、ブロードキャスト受信機が受信できるメッセージは、同じアプリケーションのコンポーネントまたは同じユーザーIDのアプリケーションから送信されたメッセージのみです。 デフォルト値は、ブロードキャストレシーバにインテント・フィルタが含まれているかどうかで決まります。フィルタがない場合、正確なクラス名を指定したIntentオブジェクトからのみ呼び出されることを意味します。これは、受信機がアプリケーション内部での使用のみを想定していることを意味する(通常、他者はクラス名を知らないため)。そのため、この場合のデフォルト値は、"false" となる。一方、少なくとも1つのフィルターが存在する場合、ブロードキャスト受信機はシステムまたは他のアプリケーションからブロードキャストされたインテントを受信することを意図しているため、デフォルト値は "true" になっています。

この属性は、ブロードキャスト受信機の外部への露出を制限する唯一の方法ではない。許可を使用して、メッセージを送信できる外部エンティティを制限することもできます(permission 属性を参照)。