AnalyticsReceiver - 那是做什么用的?为什么它会导致 'Receiver does not require permission' 警告?

AnalyticsReceiver - what is that for? And why it causes 'Receiver does not require permission' warning?

在清单文件中的 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 向我显示了该接收器的警告:

Receiver does not require permission

Exported receivers (receivers which either set exported=true or contain an intent-filter and do not specify exported=false) should define a permission that an entity must have in order to launch the receiver or bind to it. Without this, any application can use this receiver.

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

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

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