Я использую библиотеку Push Sharp для отправки push-уведомлений на устройства Android. Есть ли способ транслировать все новости одним кадром? вместо отправки каждой новости на каждое устройство отдельно?
IList<Device> deviceList = new List<Device>();
IList<PushNotification> newsList = new List<PushNotification>();
deviceList = //method to fetch Device list
newsList = //method to fetch newsList
push.RegisterGcmService(new GcmPushChannelSettings("MY GCM KEY"));
foreach (Device device in deviceList)
{
if (device.DeviceType == "android")
{
foreach (PushNotification news in newsList)
{
push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(device.PushToken).WithJson("{\"NewsTitle\":\"" + news.NewsTitle + "\"}"));
Thread.Sleep(5000);
}
}
}
Console.WriteLine("Waiting for Queue to Finish...");
//Stop and wait for the queues to drains
push.StopAllServices();
Еще один вопрос, связанный с этим: моя таблица, в которой хранятся идентификаторы регистрации для идентификаторов устройств, получает повторяющиеся записи, когда пользователь переустанавливает приложение. Таким образом, пользователь получает одно и то же уведомление дважды или трижды. Как это решить? сохранить идентификатор устройства в качестве первичного ключа подойдет? Но я заметил, что иногда идентификатор устройства также меняется после переустановки. Заранее спасибо...