gpt4 book ai didi

限制 INSTALL_REFERRER 播放商店的 Android 权限

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:53:25 36 4
gpt4 key购买 nike

我正在使用自定义分析(而非谷歌分析)设置 Activity 跟踪并为此设置接收器。我的接收器似乎可以正常工作,但是当我安装时,我收到了 android lint 警告:

ExportedReceiver: Receiver does not require permission

看起来任何旧的 android 应用程序都可以使用我不想要的 com.android.vending.INSTALL_REFERRER Intent 调用我的应用程序。它应该只是 Google Play 商店(或任何其他将从 Play 商店安装我的应用程序的 Android 系统应用程序)将该 Intent 发送到我的应用程序。

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

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

有人可以帮我设置一个权限,限制我的应用程序接受此 Intent 的应用程序到 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 接收 intent。

最佳答案

你需要设置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的保护级别是system| signature 仅系统应用程序或使用与声明此权限的应用程序相同的证书签名的应用程序;在本例中为平台)。例如,looking through Play 商店的 list 表明,"com.android.vending.permission.C2D_MESSAGE" 可能是另一个不错的选择。

希望这对您有所帮助。

关于限制 INSTALL_REFERRER 播放商店的 Android 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42079904/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com