3

我遇到了一些 GCM 推送通知无法正确到达 Android 设备的问题。经过几天的研究,我发现 Android 设备使用心跳来保持与 GCM 服务的连接。遗憾的是,心跳似乎太高了,因此 Android 设备可能(但并非总是如此)失去与 GCM 服务的连接(例如,从 WLAN 切换到 3G 时)。

在谷歌的产品论坛上已经有很多关于这个问题的讨论,但是除了使用像 parse.com 这样的第三方推送服务之外似乎没有真正的解决方案

现在谷歌发布了 GCM 云连接服务器,它使 Android 设备上的应用程序能够通过 GCM 将上游消息发送到第三方应用服务器。

有谁知道当连接不可用时,上游消息的使用是否会强制重新连接到 GCM 网络?

4

2 回答 2

2

我对此进行了测试,但似乎并非如此。但是您可以通过发送以下广播意图来强制 Android 发送常规通知心跳:

com.google.android.intent.action.MCS_HEARTBEAT
com.google.android.intent.action.GTALK_HEARTBEAT

我是从 Google Play 上的 Push Notification Fixer 应用程序中获得的(我不是开发人员)。 https://play.google.com/store/apps/details?id=com.andqlimax.pushfixer.noroot

于 2014-02-06T07:16:41.473 回答
0

您可以在此处阅读问题的完整描述:

https://productforums.google.com/forum/#!msg/nexus/fslYqYrULto/lU2D3Qe1mugJ

简而言之,问题是某些路由器或移动运营商引起的tcp空闲超时。

于 2014-02-08T11:46:05.783 回答