1

我开始在 GCM 上进行探索。请澄清以下事项。

通过使用 SenderID 向 GCM 服务器注册(项目 ID 从谷歌 API 控制台获取),不同的设备将提供唯一的注册 ID。我已使用以下代码通过在 devicelist 中添加注册 id 作为 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?

4

1 回答 1

2

您的服务器需要跟踪来自设备的所有注册 ID。因此,您需要一个数据库表来存储这些注册 ID。然后,您需要公开一个 Web 服务或一个 HTTP POST 入口点,让您的客户上传他们的注册 ID。

设备成功注册到 Google GCM 服务器后,您会在 GCMBaseIntentService 的 onRegistered() 回调方法中收到注册 id。这是您要将注册 ID 上传到服务器的位置。

于 2012-10-17T21:16:37.060 回答