我有一个Gmail帐户注册了C2DM。
我希望我的应用,多亏了这个帐户(在为每个设备请求了注册ID和身份验证令牌之后),可以向安装该应用的所有设备提供消息。
我想知道是否可以用这种方式使用C2DM。。
非常感谢
(任何细节,请问我。)
ps我让c2dm在模拟器上运行,但我当然不能尝试以前写的东西,因为我需要几部手机。。
抛开你的问题和评论,听起来你只是想知道是否可以只使用一个发件人id向数量不确定的设备发送c2dm通知。
这正是c2dm的运作方式。您创建了一个在后端服务器上使用的发件人id,该发件人id在应用程序中用于注册c2dm通知。然后,您的后端会收集所有注册id,并使用您的一个发件人id来推送感兴趣的各方的通知。
如果我正确理解你的问题,答案是:你不能。
对于你想要访问的每台设备,你必须向谷歌服务器发送一个http请求。
没有办法向所有注册到您的服务的用户广播消息。
这很令人沮丧,因为在我的情况下,我会为所有用户发送时事通讯,所以向数百万用户开通连接是昂贵的。
为了解决可伸缩性问题,我创建了一个简单的appengine map reduce任务,该任务循环通过所有用户注册并创建到谷歌服务的http连接,这是最快的,因为它可以根据您的交付需求动态实例化新服务器。
C2DM已被弃用。GCM已经取代了它,它允许您通过一个HTTPPOST向1000台设备发送消息。
C2DM->GCM迁移指南:http://developer.android.com/guide/google/gcm/c2dm.html