【问题标题】:AnalyticsReceiver - what is that for? And why it causes 'Receiver does not require permission' warning?AnalyticsReceiver - 这是为了什么?为什么会导致“接收方不需要许可”警告?
【发布时间】:2016-12-25 13:38:45
【问题描述】:

在我的清单文件中的 Android 应用程序中,我有以下接收器和服务声明:

<receiver
   android:name="com.google.android.gms.analytics.AnalyticsReceiver"
   android:enabled="true">
   <intent-filter>
      <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
   </intent-filter>
</receiver>
<service
   android:name="com.google.android.gms.analytics.AnalyticsService"
   android:enabled="true"
   android:exported="false" />

说实话,这是一个相当古老的应用程序,我不记得我为什么把它放在那里。它可能取自 Google Analytics 文档。但现在我找不到任何关于它的最新信息。

Android Studio 还向我显示了该接收器的警告:

接收者不需要许可

导出的接收器(接收器 要么设置exported=true,要么包含一个intent-filter并且不 指定exported=false) 应该定义一个实体必须的权限 有为了启动接收器或绑定到它。没有这个,任何 应用程序可以使用此接收器。

我的代码中真的需要那个接收器和服务吗?这是什么责任?还是真的吗?

【问题讨论】:

    标签: android google-analytics android-manifest android-broadcastreceiver google-analytics-sdk


    【解决方案1】:

    如果您使用的是最新版本的 Google Analytics,则不需要,您无需在清单文件中手动指定服务和接收者。

    Here is the Google Analytics getting start guide for Android。请注意,如果您是从显着较旧的版本升级,您可能需要在其他地方执行额外的工作以进行升级。您应该通读整个指南,以确保您的应用仍然正确配置。

    【讨论】:

    • 好的,谢谢!我还查看了该页面,没有找到与那些接收器和服务相关的任何内容,所以我认为它可能已经过时了。感谢您的确认!
    • 这个问题仍然存在。入门指南链接到指定在此问题中发布的配置的页面。似乎此配置用作在非 Google Play 设备上调度的后备。
    • 作为后续,如果 Lint 对您有问题,则将 tools:ignore="ExportedReceiver" 添加到接收器将删除警告。
    猜你喜欢
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    相关资源
    最近更新 更多