Когда другой пользователь регистрируется с того же устройства после переустановки приложения, для того же пользователя на сервере приложений вставлены несколько токенов устройств. Это связано с тем, что на сервере приложений мы отключили все пользовательские идентификаторы, сопоставленные с тем же самым регистрационным регистром GCM. Это было сделано для обработки входа другого пользователя с одного и того же устройства путем очистки данных (в этом случае токен устройства остается таким же, поэтому сравнение устраняет проблему). И поскольку мы отправляем уведомление навалом, мы не можем получить карту канонических идентификаторов для пользователей и отключить их.Точки жетонов с несколькими устройствами GCM
Мой код на сервере:
MulticastResult result = null;
Sender sender = new Sender(GOOGLE_SERVER_KEY);
Message messag = new Message.Builder().timeToLive(86400)
.delayWhileIdle(false)
.addData(MESSAGE_KEY, notificationJsonObject.toString())
.build();
try {
Result result = sender
.sendNoRetry(messag, androidDevicesTokens);
result.getResults().get(0).getCanonicalRegistrationId();
} catch (IOException e) {
e.printStackTrace();
}
Спасибо, Eran, это сработало. – user2201332