【问题标题】:Android: GCM vs FCM (Google Play Services upgrade vs Application upgrade)Android:GCM vs FCM(Google Play 服务升级 vs 应用升级)
【发布时间】:2017-06-21 06:42:59
【问题描述】:

我目前正在使用 Google Play 服务以及它的 GCM 功能来接收来自我的应用服务器的通知。我知道较新的 Google Play 服务会获得更新的 API,并使该功能更加高效。

  1. 旧的实验观察:GCM notifies not reaching device having google play service 6.5.99

  2. GCM 运行所需的最低 Google Play 服务是多少?是“Google Play Services 3.1”(https://android-developers.googleblog.com/2013/05/android-at-google-io-2013-keynote-wrapup.html)吗?

  3. 随着 Google Play 服务的更新频率越来越高,我是否也需要更新 Google Play 服务版本并将我的应用发布到 Play 商店?

  4. 即使没有更新到最新版本,我如何使 GCM 正常工作,还是应该通过打开 更新对话框来强制用户更新?

    例如:旧

    compile 'com.google.android.gms:play-services-gcm:3.1.0
    

    compile 'com.google.android.gms:play-services-gcm:11.0.0
    

PS:我还没有转到 FCM。 FCM的情况是否相同?我是否需要通过在 gradle 中更新最新的 FCM 版本来经常更新我的应用程序?即:

compile 'com.google.firebase:firebase-messaging:11.0.1'

【问题讨论】:

    标签: android google-cloud-messaging google-play-services firebase-cloud-messaging


    【解决方案1】:
    1. (这似乎不是问题)

    2. 不幸的是,似乎没有任何明确提到的 GCM 工作所需的 Google Play 服务版本(而且可能需要时间来测试它的功能)。已知需求如here所示。

    3. 不一定。如果您不需要使用最新版本,那么您不必这样做。它只是首选并且经常被建议,因为使用最新版本通常会修复以前版本的行为错误。

    4. 只要您能够在客户端正确实现它(这包括导入正确的库版本),它就可以正常工作。 Checking for the Google Play Services SDK可选,强烈建议仅由强烈依赖 Play 服务的应用程序使用。

      话虽如此,GCM 已经存在了相当长的时间很长,我很确定大多数版本的 Play Services 都能够处理它,如果您使用 FCM 则更多.

    强烈建议您继续使用 FCM,因为与使用最新版本的 Play 服务类似,它包含对 GCM 上出现的错误的修复。与 GCM 相同,您不必经常更新它。

    猜你会想到“如果它有效,请不要修复它”这句话

    【讨论】:

      【解决方案2】:

      我会坚持使用 FCM。推送通知依赖于您的设备 ID 生成的令牌。

      另一方面,每当用户进行出厂重置、添加新用户和更新系统版本时,设备 ID 都会更改。用户、设备和系统信息是令牌生成的变量。

      为了使您的推送通知正常工作,您应该处理它们。这就是为什么大多数人在推送通知不起作用时遇到问题的原因......您需要将 BroadcastReceivers 注册到特定事件以更新您无效的现有令牌。

      使用 FCM 有什么好处?

      这些问题已经被它及其现成的 api 所覆盖。

      您还有一个不错的面板(firebase 控制台)可以向您的用户发送推送通知。您甚至不需要编写代码来触发通知。

      您可以使用GooglePlayServicesUtilGoogleApiAvailability. 要求您的用户更新他们的播放服务

      大多数应用程序已经在执行计划更新以更新依赖项和修复。它真的很人性化。

      祝你好运

      埃姆雷

      【讨论】:

        【解决方案3】:
        1. GCM(和 FCM)甚至在 Google Play 服务 3.1 之前就可以工作,几乎任何版本。也就是说,目前官方支持的版本来自 Google Play services 4.0(旧版本仍然可以使用,但我们将来可能会停止支持)。

        2. 您无需在每次 Google Play 服务更新时都更新应用中的库。每次更新都与旧库兼容。
          也就是说,进行更新以从错误修复中受益是一种很好的做法(有时,如果它是一个小错误修复,它不会在更新日志中提及)

        3. 无需强制用户更新 GCM / FCM 的 Google Play 服务。
          (对于其他 Google Play 服务库,可能需要它,但应该由这些库自动处理)

        4. 我强烈建议更新到 FCM 以从新功能和错误修复中受益

        PS:当您使用多个 Google Play 服务库(或 Firebase 库)时,请小心使用所有库的相同版本。这是一个硬性要求。

        【讨论】:

          猜你喜欢
          • 2019-12-12
          • 2015-11-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多