广播电视接收机中的android:exported =“ false”,声明了意图过滤器

时间:2018-10-10 09:13:23

标签: android broadcastreceiver android-broadcast android-broadcastreceiver

我想声明一个广播接收器,例如,它可以收听PACKAGE_ADDEDPACKAGE_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个意图过滤器,则默认导出的值被视为“ true”。

我的问题是,如果我将这个属性与意图过滤器一起明确声明为“ false”(android:exported="false"),是否会使它更安全并且只能由系统而不是其他应用程序访问?

1 个答案:

答案 0 :(得分:0)

在示例应用程序中尝试了有问题的组合(exported =“ false”以及在接收方声明的intent过滤器),发现接收方仍然可以收听系统事件,例如PACKAGE_ADDED,PACKAGE_REMOVED等。