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

标签 android google-cloud-messaging

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

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

我的问题 我很困惑,我应该一次传递包含所有 50,000 个 ID 还是 1000 个 ID 的列表,因为文档说 “GCM 中最有用的功能之一是支持最多 1,000 个收件人的一条消息。”

[Edit1] 这样可以吗?

    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;
}

方法 regIdsThousands 来自 this问题谢谢polygenelubricants

最佳答案

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

关于Android GCM 同时发送 50,000 条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14298471/

相关文章:

android - 如何在 Android Camera 1 中开启 ZSL(零快门延迟)?

android - geocoder.getFromLocation 返回 null

android - 一旦将预期的消息传递到 android 应用程序,我的服务器能否收到来自 GCM 的确认?

javascript - 是否可以使用 Firebase Cloud Messaging API 列出所有推送通知?

android httprequest java.net.UnknownHostException

android - 将我的应用定义为 Google 助理的默认音乐服务

设备上的 Android 错误 : Failed to install *. apk *:超时

android - Google Cloud Messaging Server 响应缓慢(1 分钟)

android - 即使卸载后旧的 GCM token 仍然存在吗?

android - Google 项目在开发者控制台中不可见