我开始在GCM上探索。请澄清以下内容。
使用SenderID(项目ID从Google API控制台获取)在GCM服务器上注册,不同的设备将提供唯一的注册ID。我已经使用以下代码将消息从devicelist中的DeviceID添加为DeviceID,将消息从服务器发送到所有设备。我通过记录logcat获得了设备的注册ID。
Sender sender = new Sender("MY_API_KEY");
Message message = new Message.Builder().collapseKey("1")
.timeToLive(3)
.delayWhileIdle(true)
.addData("message",
"this text will be seen in notification bar!!")
.build();
MulticastResult result;
ArrayList<String> devicesList = new ArrayList<String>();
devicesList.add(deviceid1);
devicesList.add(deviceid2);
result = sender.send(message, devicesList, 1);
如上所述发送消息是正确的吗?
如果是这种情况,则如何设计释放特定应用程序后它将工作的代码?发布后,如何获得所有设备的注册ID?
您的服务器需要跟踪设备上的所有注册ID。因此,您需要一个数据库表来存储这些注册ID。然后,您需要公开Web服务或HTTP POST入口点,以便您的客户上传其注册ID。
设备成功地在Google GCM服务器上注册后,您将在GCMBaseIntentservice中的OnRegister()回调方法中接收注册ID。这是您要将注册ID上传到服务器的地方。