Android 发送到GCM设备的消息的正确URL?

Android 发送到GCM设备的消息的正确URL?,android,google-cloud-messaging,Android,Google Cloud Messaging,GCM的文档说,应用服务器应该使用向GCM设备发送消息,而示例程序(在GcmSender类中)使用 哪一个是正确的 几年来,我在这个领域有一个GCM应用程序,它使用后一个URL,客户端使用旧的类,而不是当前记录的类。我想这意味着我的实现是C2DM,而不是GCM,但是上面的URL不一致性让我有点不确定。除了URL之外,“我的应用程序服务器”实现与今天记录的内容相匹配,例如,它使用此格式向GCM设备发送消息: 内容类型:application/json 授权:key=AIzaSyZ-1u…0GBYz

GCM的文档说,应用服务器应该使用向GCM设备发送消息,而示例程序(在GcmSender类中)使用

哪一个是正确的

几年来,我在这个领域有一个GCM应用程序,它使用后一个URL,客户端使用旧的类,而不是当前记录的类。我想这意味着我的实现是C2DM,而不是GCM,但是上面的URL不一致性让我有点不确定。除了URL之外,“我的应用程序服务器”实现与今天记录的内容相匹配,例如,它使用此格式向GCM设备发送消息:

内容类型:application/json 授权:key=AIzaSyZ-1u…0GBYzPu7Udno5aA

{ “注册id”:“APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx…”, “数据”:{ ... }, }

这也很奇怪-示例应用程序使用“to”,而不是“registration\u id”,我自己的应用程序使用“registration\u id”

此外,我的应用程序服务器从未使用过“ClientLogin Auth令牌”,文档让我相信所有C2DM应用程序都使用了该令牌。这增加了我对我的实现是C2DM还是GCM的困惑,因此它将在2015年10月20日停止工作还是继续工作

有人能澄清一下吗

谢谢


标记目标url

这似乎是示例代码跟不上API最新开发的典型案例。谷歌的这种情况经常发生

是通过HTTP发送消息的正确url。阿福,这是不正确的

适用于以前的版本,但仍然有效

发送和注册\u id

“收件人”字段用于向单个收件人发送邮件。要为一个或多个收件人发送邮件时,将使用“注册ID”字段。因此,对于只发送给一个人,两者都可以使用。然而,后者希望它的输入是一个数组


如果一次只向一个收件人发送邮件,那么使用XMPP可能会更有效。XMPP还具有从设备接收消息的附加好处

谢谢-这澄清了URL问题。总之,文档化的URL(可能)是错误的(应该),但是示例代码使用了一个仍然有效的URL,该URL是为以前的版本(GCM或C2DM?)引入的。但是,这仍然让我想知道我的实现是C2DM还是GCM。如果您能够注册一台设备,那么您正在使用GCM,因为C2DM不再接受新的注册。是的,我能够注册一台新设备。我猜GCM仍然与旧的客户端类(例如GCMBaseIntentService、GCMRegistar等)兼容。正确,但这些类已被弃用,因此您可能希望在下一版本的应用程序中进行更改。有一个关于迁移的指南是的,就是在开始迁移的时候我发现了所有这些。这意味着我的应用服务器在10月20日不会有崩溃的危险,除了更改应用服务器GCM端点URL(严格来说不是必需的)之外,不需要更改。