Различные способы отправки push-уведомлений могут быть перечислены следующим образом
- Обмен сообщениями между Android и облаком (C2DM) в OS2.2 +
- Другие методы для устройств, предшествующих OS2.2.
Обмен сообщениями между облаками и устройствами (C2DM) OS2.2 +. Стандартный метод push-уведомлений, используемый в платформе Android, называется обмен сообщениями между облаками и устройствами Android (C2DM). Служба предоставляет простой и легкий механизм, который сервер может использовать, чтобы сообщить приложению о необходимости прямого контакта с сервером для получения обновленных данных.
C2DM позволяет отправлять легкие сообщения в приложения для Android. Служба обмена сообщениями не предназначена для отправки большого количества пользовательского контента через сообщения. Скорее, его следует использовать, чтобы сообщить приложениям, что на сервере появилось новое предупреждение, чтобы приложение могло его получить.
C2DM ограничения:
- Ограничение размера сообщения составляет 1024 байта.
- Google ограничивает количество сообщений, отправляемых отправителем в совокупности, и количество сообщений, отправляемых отправителем на определенное устройство
- C2DM не дает никаких гарантий относительно доставки или порядка сообщений
- C2DM требует, чтобы пользователи настраивали свои учетные записи Google на своих мобильных устройствах.
- C2DM требует устройств под управлением Android 2.2 или выше, на которых также установлено приложение Market
Сервер должен быть
- Возможность использовать HTTPS для связи с C2DM Server.
- Умеет общаться с нашим клиентом.
- Возможность запуска HTTP-запросов к серверу C2DM.
- Может обрабатывать запросы и помещать данные в очередь по мере необходимости. Например, он должен иметь возможность экспоненциального отката.
- Может хранить токен ClientLogin Auth и идентификаторы регистрации клиента. Токен ClientLogin Auth включен в заголовок запросов POST, отправляющих сообщения. Для более подробного обсуждения этой темы см. ClientLogin для установленных приложений. Сервер должен хранить токен и иметь политику его периодического обновления.
Другие методы для устройств, предшествующих OS2.2:
- Опрос, а не толчок
- SMS
- Постоянный TCP / IP
- Сторонние предложения
Опрос вместо нажатия : Android-приложение может периодически опрашивать сервер на наличие новых сообщений от фоновой локальной службы. Чем чаще вы будете опрашивать, тем ближе вы будете к пушу в реальном времени.
- Adv. Простота реализации.
- Disadv: не в режиме реального времени. Убьет батарею.
SMS : приложения Android могут перехватывать текстовые сообщения в телефоне Android. Поэтому, если сервер может отправлять смс при получении уведомления, приложение Android может получать смс, а затем проверять новые данные на сервер.
- Adv: легко реализовать. Полностью обновления в реальном времени.
- Disadv: может быть дорогостоящим.
Лаборатории Эрикссон предоставляют размещенный сервис, который позволяет отправлять до 2000 SMS-сообщений.
Постоянный TCP / IP : приложение для Android инициирует долгоживущее в основном простое соединение TCP / IP с сервером и поддерживает его, периодически отправляя сообщения поддержки активности. Всякий раз, когда на сервере появляется что-то новое, он отправляет сообщения на телефон через соединение TCP.
- Adv: обновления в режиме реального времени.
- Disadv: сложно внедрить надежный сервис как на телефоне, так и на стороне сервера. Известно, что ОС Android способна уничтожать службы, когда у нее мало памяти, поэтому наша служба уведомлений может легко исчезнуть. Что происходит, когда наш телефон идет спать? Представьте, что все приложения используют одну и ту же технику. будет много открытых соединений, которые разряжают батарею.
Сторонние предложения
- Urban Airship Push: Большой недостаток в том, что он требует, чтобы пользователь установил приложение AirMail на свое устройство.
- Проект дьякона
- xtify
- pushdroid.org