Отправка нескольких удаленных уведомлений pu sh в режиме полета, при повторном подключении получить только последнее - PullRequest
2 голосов
/ 19 июня 2020

Я пытаюсь реализовать удаленное уведомление pu sh в моем приложении android с помощью FCM, оно отлично работает, когда есть соединение inte rnet. Но когда устройство переводится в режим полета, затем отправляется несколько удаленных уведомлений pu sh, а затем снова подключается, я получаю только последнее.

Я попытался изменить TTL в полезной нагрузке, используя другой ключ сворачивания и изменив приоритет. Ничего не получилось. Вот образец моего информационного наполнения уведомления:

{"GCM": "{ \"notification\": { \"text\": \"test\",  \"title\": \"Titre\" },\"data\": { \"time_to_live\": 3600,\"collapse_key\":\"deals\"}, \"priority\": \"high\" }"}

FYI: само уведомление отправляется из AWS SNS в FCM.

Всем известно, почему мы получаем только последнее сообщение и как сделать так, чтобы мы получали все?

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Когда вы показываете уведомление, используете ли вы тот же номер в notificationId? Если это так, уведомления с одинаковыми идентификаторами будут переопределять друг друга и отображать только последнее. Здесь вам нужно иметь целое число stati c и увеличивать его каждый раз, когда вы используете эту переменную. См. здесь

notificationManager.notify(notificationId, builder.build());
0 голосов
/ 19 июня 2020

Вы не должны использовать collapse_key. Как указано в документации :

не сворачиваемое сообщение означает, что каждое отдельное сообщение доставляется на устройство. Не сворачиваемое сообщение доставляет некоторый полезный контент, в отличие от сворачиваемого сообщения, такого как "пинг" без содержимого, в мобильное приложение, чтобы связаться с сервером для получения данных.

...

A сворачиваемое сообщение - это сообщение, которое может быть заменено новым сообщением, если оно еще не было доставлено на устройство.

Чтобы пометить сообщение как сворачиваемое на Android, включите параметр collapse_key в полезные данные сообщения . FCM позволяет серверу приложений использовать не более четырех различных ключей сворачивания на Android устройство в любой момент времени. Другими словами, сервер FCM может одновременно хранить четыре разных сворачиваемых сообщения на устройство, каждое с разными ключами сворачивания. Если вы превысите это число, FCM сохранит только четыре ключа сворачивания, без каких-либо гарантий относительно того, какие из них сохранены.

Другими словами: FCM заменит последнее непринятое содержимое уведомления pu sh с новым содержанием запроса на уведомление pu sh, если их collapse_key совпадает.

И небольшой снимок экрана, так как вставка таблицы не удобна:

Should you use collapsible messages or not? A table with explanations is shown for you to decide.

...