我目前正在使用Google Play服务,反过来,它的GCM功能可以从我的应用服务器接收通知。我知道较新的Google Play服务可以获得更新的API并使该功能更有效。
旧的经验观察:GCM notifies not reaching device having google play service 6.5.99
GCM工作所需的最低Google Play服务是什么?是“Google Play Services 3.1”(https://android-developers.googleblog.com/2013/05/android-at-google-io-2013-keynote-wrapup.html)?
随着Google Play服务经常更新,我是否需要更新Google Play服务版本并将我的应用发布到商店?
如果没有更新到最新版本,如何使GCM工作,或者我应该通过建立更新对话框强制用户更新?
ex:old
compile 'com.google.android.gms:play-services-gcm:3.1.0
到
compile 'com.google.android.gms:play-services-gcm:11.0.0
compile 'com.google.firebase:firebase-messaging:11.0.1'
答案 0 :(得分:1)
(这似乎不是一个问题)
不幸的是,似乎没有GCM工作所需的任何明确提及的Google Play服务版本(并且可能需要一些时间来测试它所做的事情)。已知要求如here所示。
不一定。如果您不需要使用最新版本,那么您就不必这样做了。它只是首选,并且经常被建议,因为使用最新版本通常会修复以前版本的行为的错误。
只要您能够在客户端正确实现它(包括导入正确的库版本),它就可以工作。 Checking for the Google Play Services SDK 可选 ,强烈建议由强烈依赖Play服务的应用完成。
话虽如此,GCM已经存在了相当长的时间,并且我非常确定大多数版本的Play服务能够处理它,如果你&#39更多;重新使用FCM。
强烈建议您继续使用FCM,因为与使用最新版本的Play服务类似,它包含对GCM上发生的错误的修复。与GCM相同的情况是,您不必经常更新它。
猜猜你能想到" 如果它有效,就不要修理它"说
答案 1 :(得分:0)
我会坚持使用FCM。推送通知依赖于您的设备ID 生成的令牌。
另一方面,只要用户重置工厂,添加新用户和更新系统版本,就会更改设备ID。用户,设备和系统信息是令牌生成中的变量。
要使推送通知正常工作,您应该处理它们。这就是为什么大多数人都有问题为什么他们的推送通知不起作用的原因...您需要将BroadcastReceivers注册到特定事件以更新无效的现有令牌。
使用FCM有什么好处?
这些问题已经包含在已经及其准备好的api中。
此外,您还有一个很好的面板(firebase控制台)可以向您的用户发送推送通知。您甚至不需要编写代码来触发通知。
您可以使用GooglePlayServicesUtil和GoogleApiAvailability.
要求您的用户更新其Play服务大多数应用程序已经在进行预定更新以更新依赖项和修复程序。它真的用户友好。
祝你好运埃姆雷
答案 2 :(得分:0)
GCM(和FCM)甚至可以在Google Play服务3.1之前运行,所以几乎任何版本。也就是说,目前官方支持的版本来自Google Play服务4.0(旧版本仍然有效,但我们可能会在将来停止支持)。
您不需要在每次Google Play服务更新时更新应用中的库。每次更新都与旧库兼容 也就是说,最好更新以从错误修正中受益(有时如果它是一个小错误修正,它在更改日志中没有提到)
无需强制用户更新GCM / FCM的Google Play服务 (对于其他Google Play服务库,可能需要它,但应由这些库自动处理)
我强烈建议您更新FCM,以便从新功能和错误修正中受益
PS:当您使用多个Google Play服务库(或Firebase库)时,请小心使用所有库的相同版本。这是一项艰难的要求。