Android GCM同时发送50,000条消息

时间:2013-01-12 22:13:18

标签: android google-cloud-messaging

我正在尝试按照here所述使用Google GCM多播消息传递。我需要同时发送50,000条消息。

文档说我应该将注册ID列表传递给Sender.send()

我的问题 我很困惑,我是否应该一次通过所有50,000个ID或1000个ID的列表,因为文档说“GCM中最有用的功能之一是支持单个邮件最多1,000个收件人。”

[编辑1] 这可以吗?

    Sender sender = new Sender(API_KEY);
    List<List<String>> regIdsParts = regIdInThousands(getRegistrationIds(), 1000);

    for (int i = 0; i < regIdsParts.size(); i++) {

        Message message = new Message.Builder()
                .addData(MsgKey, message).build();
        MulticastResult result = sender.send(message, regIdsParts.get(i), 5);
    }


   public List<List<String>> regIdInThousands(List<String> list, final int L) {

    List<List<String>> parts = new ArrayList<List<String>>();

    final int N = list.size();
    for (int i = 0; i < N; i += L) {
        parts.add(new ArrayList<String>(
                list.subList(i, Math.min(N, i + L))));
    }
    return parts;
}

方法从this提出问题{000}感谢polygenelubricants

1 个答案:

答案 0 :(得分:5)

一次传递1,000个ID。单个邮件的收件人数不能超过1,000个。