Android 权限限制 INSTALL_REFERRER 到 Play 商店

问题描述 投票:0回答:4

我正在使用自定义分析(不是谷歌分析)设置活动跟踪并为此设置接收器。我的接收器似乎工作正常,但当我安装时,我收到 Android lint 警告:

ExportedReceiver: Receiver does not require permission

看起来任何旧的 Android 应用程序都可以使用我不想要的

com.android.vending.INSTALL_REFERRER
意图来调用我的应用程序。它应该只是 Google Play 商店(或从 Play 商店安装我的应用程序的任何其他 Android 系统应用程序)将该意图发送到我的应用程序。

所以我试图弄清楚如何设置一个权限来限制Play商店的有效应用程序,但我无法根据文档找出设置权限的正确方法:

https://developer.android.com/guide/topics/manifest/permission-element.html

有人可以帮助我设置一个权限来限制我的应用程序从 Play 商店接受此意图的应用程序吗?这是我当前的接收器配置:

    <receiver
            android:name=".referrals.MyCampaignTrackingReceiver"
            android:enabled="true"
            android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER"/>
        </intent-filter>
    </receiver>

我尝试在

normal
级别为接收器设置权限,但这阻止了应用程序从 Playstore 接收意图。

android android-intent
4个回答
4
投票

您需要在接收器上设置

android:permission
属性。所以它看起来像这样:

<receiver
        android:name=".referrals.MyCampaignTrackingReceiver"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.CLEAR_APP_CACHE">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER"/>
    </intent-filter>
</receiver>

此处

"android.permission.CLEAR_APP_CACHE"
的使用是任意的,您可以使用 Play 商店拥有的任何权限,并且第三方应用程序不可能拥有(因为
CLEAR_APP_CACHE
的保护级别仅限于系统应用程序或使用与声明此权限的应用程序相同的证书签名的应用程序;在本例中为平台)。例如,
浏览
Play 商店的清单表明,system|signature可能是另一个不错的候选者。

希望这有帮助。


2
投票


0
投票

0
投票

© www.soinside.com 2019 - 2024. All rights reserved.