Android Google Play活动测量-必需的库,并警告:“;导出的收件人不需要许可”;

Android Google Play活动测量-必需的库,并警告:“;导出的收件人不需要许可”;,android,android-intent,google-analytics,Android,Android Intent,Google Analytics,我正在安装为AndroidManifest找到的代码段。然后是后续步骤 我有两个可能相关的问题 1:必要的图书馆? 首先,我担心我已经安装了必要的库。如果我在这里的AndroidManifest文件中放了一个假的路径,Eclipse一点也不抱怨。为了测试它,我进入了一个java文件并放入: import com.google.analytics.tracking.android.CampaignTrackingReceiver; 事实证明,我已经通过segment.io库安装了它。但是com.

我正在安装为AndroidManifest找到的代码段。然后是后续步骤

我有两个可能相关的问题

1:必要的图书馆? 首先,我担心我已经安装了必要的库。如果我在这里的AndroidManifest文件中放了一个假的路径,Eclipse一点也不抱怨。为了测试它,我进入了一个java文件并放入:

import com.google.analytics.tracking.android.CampaignTrackingReceiver;

事实证明,我已经通过segment.io库安装了它。但是com.android.vending.INSTALL\u referer呢

import com.android.vending.INSTALL_REFERRER;
“…无法解决…”

“…解析为一个包…”。这是否意味着它有包装,但没有特定的符号

import com.android.bogus;
“…无法解决…”

似乎是这样

那么,如何理解这一点呢?我担心的原因是,我曾经遇到过这样的情况(ApacheHTTP库),一个.jar文件让编译器知道导入路径,而不是实现。我必须添加另一个jar文件才能得到它。当然,当应用程序崩溃时,我会发现这一点。我可以试一下,不过很方便,因为这项功能的性质,只有在用户从Play store安装了应用程序后才会触发。哎呀

,看起来如果我想
com.android.vending.billing
,我必须安装一个单独的库。不知道这是怎么说的
com.android.vending

2:警告:“导出的接收器不需要许可” 其次,我得到警告“导出的接收器不需要许可”,突出显示这一行:

<receiver android:name="com.google.analytics.tracking.android.CampaignTrackingReceiver" android:exported="true">

这方面的其他答案对我没有帮助。在上一节课上,我能收集到的最好的信息是,
可能应该被删除,但不是


使
external=“false”
修复了它,但据我所知,这也使整个事情变得毫无用处,因为它是从应用程序外部触发的。我真的不知道该怎么做。这是安全问题吗?

好的,我可以回答我自己的问题1)。为您提供了一种在将其放入play store之前测试意图的方法

结论是,不,除了Google Analytics之外,没有可以安装的jar。我的应用程序没有崩溃,我得到了预期的响应。(但是,对于其他使用segment.io的人,我应该注意到,我还没有让它与该集成一起工作。我正在进行这方面的工作,不确定这是否可行。目前,我直接按照说明中的说明放置GA内容。)


除非有可能是我安装的其他东西把它给了我。我也有谷歌播放服务库作为一个单独的项目,也许它在那里。在任何情况下,执行上述测试时,您都应该确保它正常工作。

“但是com.android.vending.INSTALL\u referer呢?”--这是一个字符串。这不是一门课。如果需要从Java代码中引用此字符串,请使用
“com.android.vending.INSTALL\u referer”
,或者查看是否存在包含此字符串的某个类的某些
公共静态final
数据成员。“这是一个安全问题吗?”--林特指出,任何东西都可以向你的接收器发送广播。查看本次广播的文档中是否提到可以提供的
android:permission
属性来更好地锁定它。您对这些属性得出了任何结论吗?我的想法(假设您的目标是Android Oreo):-Android:exported=“true”是必需的(其他一些应用程序必须能够播放此内容?)-Intent filter for action“com.Android.vending.INSTALL\u referer”将被使用(?)-com.google.Android.gms.analytics.ActivationTrackingService的声明可以从清单中删除(请参阅:)对接收者及其声明进行了一些更改,但我不知道这些Google Play接收者是否被视为“隐式”:
<receiver android:name="com.google.analytics.tracking.android.CampaignTrackingReceiver" android:exported="true">