我正在开发一个使用 Google Cloud Messaging 使用推送通知来通知 android 应用程序的项目。我已经用 PHP 实现了应用程序服务器。当我运行 android 应用程序时,设备从 GCM 服务器获取注册 ID,并将注册 ID 发送到 PHP 服务器(应用程序服务器)。但我从服务器得到以下 httpresponse :
{
"multicast_id": 7015234441922271670,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [{
"message_id": "0:1344007383866721%2adac3a0ad8b3148"
}]
}
但消息未传递到设备。任何建议请。
如果有人有上述问题,请检查下面它可能对你有帮助
最后我找到了解决方案在服务器端,只要应用程序表现良好,一切都应该正常工作。但是,如果应用程序中的错误触发同一设备的多个注册,则可能很难协调状态,并且您最终可能会收到重复的消息。
GCM 提供了一种称为“规范注册 ID”的工具,可以轻松地从这些情况中恢复。规范注册 ID 定义为您的应用程序请求的最后一次注册的 ID。这是服务器在向设备发送消息时应使用的 ID。
如果稍后您尝试使用不同的注册 ID 发送消息,GCM 将照常处理请求,但它将在响应的 registration_id 字段中包含规范注册 ID。确保使用此规范 ID 替换存储在您服务器中的注册 ID,因为最终您使用的 ID 将停止工作。