2016-01-13 106 views
1

我跟踪我安装了两种方法就像你可以在这里看到我的清单:安装跟踪需要导出吗?

<receiver 
    android:name="com.google.android.gms.tagmanager.InstallReferrerReceiver" 
    android:exported="true"> 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 

<receiver 
    android:name=".tracking.ReferralReceiver" 
    android:exported="true"> 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 

第二接收机产生掉毛警告先不要。这是否意味着Google知道他们的InstallReferrerReceiver并知道让它导出是安全的?

PS:我知道我可以使用tools:ignore="ExportedReceiver"

回答

1

当一个应用程序从谷歌Play商店安装的INSTALL_REFERRER意图广播。 android:exported="true"表示允许接收机从其他应用接收广播意图。你确实需要这个,否则你将无法收到其他应用发送的事件(系统或Play商店应用,我不确定)。

但是,如果您检查文档android:exported,则其默认值为true,如果它至少有一个<intent-filter>,否则它是错误的。

所以总结起来,你需要android:exported="true"赶上事件。但是省略这个属性也是可以的,因为你的接收器的默认值是true(但是它更安全)。

关于lint警告:它可识别的名称,这就是为什么它知道第一个版本是安全的。

+0

所以我猜,我可以放心地忽略此警告。我可能会打开一个错误,因为这是此操作的一般情况。 – rekire

+0

如果您打开一个错误,请将其作为功能请求打开。这只是一个警告,不是一个错误。 –

+0

恕我直言,这个警告出现是错误的。然而,这并不重要。 – rekire