есть ли способ определить, можно ли доставить push-уведомление прямо сейчас?
Насколько я знаю, это невозможно, но я не уверен в этом.
Итак, мой сценарий выглядит так:
У меня есть приложение для Android
У меня есть свой собственный сервер
Мое приложение на моем телефоне Android должно взаимодействовать с моим приложением на телефоне моего друга Android.
Сейчас я ищу коммуникационную среду в реальном времени, и я думаю, что C2DM может мне помочь.
Итак, давайте скажем:
Мое приложение на телефоне A должно написать небольшое сообщение в мое приложение на телефоне B.
Предположим, что телефон А находится в сети и может общаться с моим сервером. Таким образом, телефон А отправил бы сообщение на мой сервер, и теперь мой сервер попытался бы доставить это сообщение на телефон Б.
И это точка, где мой сервер будет пытаться доставить сообщение на телефон B через C2DM, и это также точка, где мой сервер должен знать, возможно ли отправить это сообщение через C2DM или нет. В противном случае мой сервер должен использовать другой способ связи для доставки сообщения, например, смс или что-то еще.
Итак, дело в том, что мне действительно нужно знать, возможно ли в данный момент доставить его на телефон B через C2DM (конечно, мой сервер знает регистрационный идентификатор C2DM телефона B).
В противном случае, например, если телефон B не подключен к Интернету и не может получать push-уведомления C2DM, мой сервер отправит смс на телефон B.
Можно ли определить, если телефон B подключен к сети?
Я пытаюсь связаться с каждым пользователем (если его телефон включен). Если он в сети, то через C2DM, иначе через SMS, чтобы сообщение доставлялось в этот самый момент любым способом.
Примечание:
Я знаю, что C2DM может хранить уведомления и доставлять сохраненные уведомления, когда телефон B подключен к сети, но я не хочу его использовать. Обратите внимание, что я знаю (архитектурно), как использовать C2DM. Таким образом, «сообщение», которое должно быть доставлено с телефона A на телефон B, не будет доставлено непосредственно в push-уведомлении C2DM с текстом сообщения / конфиденциальными данными в качестве тела сообщения. Конечно, доставленное сообщение - это всего лишь «сообщение об обновлении», сообщающее моему приложению по телефону B, что что-то изменилось, и приложение должно теперь подключиться к моему серверу, чтобы получить (опросить) последнее состояние с «текстовым сообщением», которое было отправлено с телефона А вам (телефон Б)