我正在使用GCM开发Android应用。目前我在客户端和服务器端使用标准的Google库。 如果我在两台Android设备上进行测试,无论我的应用程序是否正在运行,GCM都可以正常启动。
但是,如果设备A已关闭且我正在从设备B向其发送消息,则当设备A重新打开时,它不会接收到离线时发送的任何消息。
在服务器端(启动实际发送),每封给设备A的消息都没有collapse_key
,time_to_live
设置为2000000
(以防出于测试目的)。实际发送的重试参数设置为50
(如果GCM本身无法访问,则不太可能)。
我是否需要在设备启动时完成GCM注册程序?目前我这样做了。
请注意,GCM广播接收器和GCMIntentService已设置以及权限 在Google网站上描述的清单中。
任何建议都将不胜感激。我真的遇到了这个问题。
答案 0 :(得分:1)
对不起伙计们。这都怪我。共享首选项未正确加载,导致GCMIntentService无法正常运行。消息很好。
如此解决
答案 1 :(得分:0)
我是否需要在设备启动时完成GCM注册程序?
不,你不是。
在我们的项目中,我们在接收设备关闭或外线时发送的消息时不会遇到任何问题。我们不会使用任何Google图书馆并完成所有操作,如gcm homepage所述。此外,我们不会为我们设置任何 collapse_key 和 time_to_live 消息。
顺便说一下,您处理 message_type 吗?我是GCM通知您邮件已被删除