receiver
自分のウィジェット用にを定義org.test.mywidget.MY_ACTION
し、システム ブロードキャストとともに自分のブロードキャストを処理APPWIDGET_xxx
するようにしたいとします。それを定義する正しい方法は何ですか?同じアプリパッケージ?次の XML コードを試しましたが、この方法ではAPPWIDGET_DELETE
アクションがウィジェット プロバイダーに配信されなくなりました。
<receiver
android:name="MyWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/my_widget_info" />
</receiver>
<receiver
android:name="MyWidgetProvider"
android:exported="false">
<intent-filter>
<action android:name="org.test.mywidget.FORCE_SMALL_WIDGET_UPDATE" />
</intent-filter>
</receiver>
上記の XML には、私が言及した問題 (DELETED イベントが配信されない) があり、レシーバーが再定義されているため、私には良くないようです。
<receiver
android:name="MyWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="org.test.mywidget.FORCE_SMALL_WIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/my_widget_info" />
</receiver>
これは機能し、APPWIDGET_UPDATE
自分APPWIDGET_DELETE
のブロードキャストはすべて配信されますが、質問があります。値がデフォルトで に設定されorg.test.mywidget.FORCE_SMALL_WIDGET_UPDATE
ているため、他のアプリがアクションを含むブロードキャスト インテントをウィジェットに配信できるようになりましたか? このエクスポートされた値に関連するいくつかの基本的な概念が欠けている可能性があります。android:exported
true