0

BroadcastReceiverのAndroidドキュメントでは:

android:permissionブロードキャスターがブロードキャスト レシーバーにメッセージを送信するために必要なアクセス許可の名前。この属性が設定されていない場合、要素の許可属性によって設定された許可がブロードキャスト レシーバーに適用されます。どちらの属性も設定されていない場合、受信者は許可によって保護されません。

アプリケーション タグにカスタム アクセス許可を設定し、MEDIA_SCANNER_FINISHEDブロードキャストを受信しようとするレシーバーも持っています。また、システムがリスナー イベントをブロードキャストしようとすると、次の警告メッセージが表示されます。

Permission Denial: broadcasting Intent {
 act=android.intent.action.MEDIA_SCANNER_FINISHED
 dat=file:///mnt/sdcard } from com.android.providers.media (pid=767,
 uid=10029) requires com.xxx.permission due to receiver
 com.xxx.myreceiver

どうすればブロードキャストを取得できますか?

4

1 に答える 1

1

でレシーバーのインテントフィルターの仕様schemeも定義していることを確認してください。dataAndroidManifest.xml

<receiver android:name=".YourReceiver">
    <intent-filter>
        <action android:name="android.intent.action.MEDIA_SCANNER_FINISHED" />
        <data android:scheme="file" />
    </intent-filter>
</receiver>
于 2012-07-31T10:12:01.497 に答える