1

here で説明されているように、Google GCM Multicast Messaging を使用しようとしています。50,000 件のメッセージを同時に送信する必要があります。

ドキュメントには、登録IDのリストをに渡す必要があると書かれていSender.send()ます。

ドキュメントに「GCM で最も便利な機能の 1 つは、1 つのメッセージで最大 1,000 人の受信者をサポートすることです」 と記載されているため、一度に 50,000 個すべての ID または 1000 個の ID を含むリストを渡す必要があります。

【追記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;
}

メソッド regIdsThousands from this question ありがとうpolygenelubricants

4

1 に答える 1

5

一度に 1,000 個の ID を渡します。1 つのメッセージに 1,000 人を超える受信者を含めることはできません。

于 2013-01-12T22:20:37.773 に答える