android - 安装跟踪是否需要导出?

标签 android security manifest android-lint

我正在使用两种方法跟踪我的安装,就像您在我的 list 中看到的那样:

<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>

第二个接收器生成一个 lint 警告第一个不是。这是否意味着 Google 知道他们的 InstallReferrerReceiver 并且知道让它导出是安全的?

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

最佳答案

INSTALL_REFERRER当从 Google Play 商店安装应用程序时广播 Intent 。 android:exported="true"意味着允许接收器接收来自其他应用程序的广播 Intent 。你确实想要这个,否则你将无法接收到由另一个应用程序(系统或 Play 商店应用程序,我不确定)发送的事件。

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

所以综上所述,你需要android:exported="true" catch 事件。但省略此属性也可以,因为默认值为 true为您的接收器(但拥有它更安全)。

关于 Lint 警告:它识别名称,这就是它知道第一个版本是安全的原因。

关于android - 安装跟踪是否需要导出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34761904/

相关文章:

android - 如何删除提交到Google Play商店的内测应用?

java - 无法从 jar 文件中找到 Premain-Class list 属性

Android Manifest 和 google play store 权限问题

android - 我如何从 SharedPreference 得到这个作为我的响应对象?

android c2dm编程示例

android - canvas.drawRect 是黑色而不是透明的

security - Google Spreadsheets 上的 UrlFetchApp.fetch 无法连接 AWS 后端 Web 服务

node.js - 将使用 HTTP 对我的服务器进行的 API 调用重定向到 HTTPS 是否安全?

c# - HttpWebRequest 无法从 nasdaq.com 下载数据,但可以从浏览器下载数据

FFMPEG:如何从 mpd list 中手动选择视频质量?