Подтвердить что ты не робот

Как получить несколько уведомлений с помощью GCM без замены прецедента?

Я работаю над проектом, который получает уведомление с сервера GCM.

У меня есть идентификатор регистрации с сервера GCM, и я отправляю его на свое серверное приложение, которое сохраняет его в базе данных.

Мое устройство получает сообщение, но когда я пытаюсь отправить другое, прецедент заменяется.

Я знаю, что у нас есть 2 типа сообщений:

  • Складываемый "отправить на синхронизацию"
  • Non-складная

Итак, не изменяя имя сообщения, как я могу отправить два сообщения в разное время?

ОБНОВЛЕНИЕ 1:

Когда мое устройство отключено (например, режим аэропорта активирован), я пытаюсь отправить, например, 2 сообщения с моего сервера приложений в Google сервер (я читал, что в Google хранятся все сообщения). Но когда я деактивируйте этот режим, я получаю только последнее отправленное сообщение.

Я использую разные collapse_key для разных сообщений, и я получаю все из них (конечно, когда устройство онлайн).

Кто-нибудь знает, как я могу это исправить?

4b9b3361

Ответ 1

Вам нужно убедиться, что значение поля "collapse_key" в каждом сообщении отличается

Ответ 2

Ключ свернуть относится только к сообщениям, которые были отправлены на сервер GCM, но еще не достигли целевого устройства (если более одного такого сообщения имеет тот же ключ коллапса, только один из них будет отправлен на устройство когда он становится онлайн).

В вашем вопросе вы описываете другую ситуацию - первое сообщение принимается устройством, а затем второе сообщение принимается устройством и заменяет исходное сообщение. Это не имеет никакого отношения к GCM. Это связано с тем, как ваше приложение обрабатывает полученные сообщения. Например, если ваш код приложения, который получает сообщение, отображается как уведомление, вам решать, будет ли новое сообщение переопределять существующее уведомление или создать новое уведомление.