Androidデバイスで通知を送信するためにGCM APIを使用してJavaで以下のコードをjavaに実装しました。Java GCM APIを使用してアンドロイドデバイスの失敗プッシュ通知の登録IDを取得する方法
Sender sender = new Sender(GCM_API_KEY);
Message.Builder builder = new Message.Builder();
builder.collapseKey(collpaseKey);
builder.timeToLive(TTL_HOURS * 3600);
if (data != null) {
for (PushData messageData : data) {
builder.addData(messageData.getKey(), messageData.getValue());
}
}
if (StreamType.CALL == type) {
for (PushData pushData : message) {
builder.addData(pushData.getKey(), pushData.getValue());
}
}
Message msg = builder.build();
try {
System.out.println(msg.toString());
MulticastResult result = sender.send(msg, pushId, MAX_RETRY);
log.infof("result %s", result.toString());
return true;
}
ここで、pushIdは、通知の送信先となるすべてのデバイスのプッシュIDを含むListのタイプです。
問題は、結果が失敗プッシュIDまたは任意のデバイスIDを含まないため、どのデバイスが通知を受け取っていないかを特定できることです。 注: - 私は1つの
レスポンスにより通知1を送信したくない -
MulticastResult(multicast_id = 7588781423174816193、合計= 5、成功= 1、失敗= 4、canonical_ids = 0を、結果結果: [[のerrorCode = NotRegistered]、[ イベントID = 0:1505731620878025%のf02bfbe47eeff668]、[ のerrorCode = NotRegistered]、[のerrorCode = NotRegistered]、[ のerrorCode = NotRegistered]ない
共同登録IDなどを取得して、デバイスをdbで識別できるようにします。
お問い合わせください。 ありがとうございました。