Я хочу объявить приемник вещания, который может прослушивать системные трансляции, такие как PACKAGE_ADDED
, PACKAGE_REPLACED
, например,
<receiver
android:name="com.sample.cli.xyz.XyzReceiver"
android:exported="true"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
</intent-filter>
</receiver>
Если я сохраню здесь exported="true"
, любое приложение может отправлять трансляциюи это может быть проблемой безопасности.Согласно документации Android, если в теге получателя есть хотя бы 1 фильтр намерений, то значение по умолчанию для экспортируемого объекта считается «истинным».
У меня вопрос, если я явно объявлю этот атрибут как «ложный» (android:exported="false"
) вместе с фильтрами намерений, сделает ли он его более безопасным и сделает его доступным только для системы, а не для других приложений?