Intereting Posts
Невозможно использовать PowerMock с Robolectric Увеличение двойного крана WebView не работает на Motorola Droid A855 JNA для Android Проблема с пользовательским списком ListView Как подключить личные данные к событию календаря Android Получение размера окна БЕЗ заголовков / предупреждений Приложение рушится на спине, нажатой при использовании карты внутри фрагмента в андроиде? Каков наилучший способ уникальной идентификации пользователей Android на сервере? Создайте новое действие, щелкнув значок настройки Многопоточная связь: насколько хороши использование атомных переменных, таких как AtomicInteger? Почему нет AtomicFloat? Использование jars, которые используют классы java.beans (Introspector, BeanInfo или PropertyDescriptor) Ошибка IabHelper Android (NullPointerException) launchPurchaseFlow? Как запустить сервис из моего Interactor с использованием шаблона MVP в android? Поддержка Kotlin для @ColorInt Java Annotation Почему в этом случае говорят, что «растровое изображение не может быть разрешено к типу»?

Как реализовать Beluga или WhatsApp как систему обмена сообщениями в Android 2.1

Я пытаюсь разработать приложение для сообщений в своем приложении для Android. Сообщение будет похоже на whatsapp и beluga. Я искал ее и нашел, что C2DM Android 2.2 может отправлять push-уведомления на устройство. Однако это не доступно на Android 2.1. Кто-нибудь знает, как whatsapp отправляет уведомления для устройств 2.1?

Для Android: Whatsapp построен на C2DM, и когда приложение открывается, он открывает подключение XMPP к своей службе, чтобы мгновенно доставлять сообщения. Они также могут использовать MQTT в качестве протокола для минимизации использования батареи. Это в основном это.

Изменить: я узнал больше, Facebook использует MQTT в своем приложении для обмена сообщениями. Whatsapp построен на XMPP с их собственными расширениями. Их серверная часть работает поверх ejabbard (реализация XMPP в erlang). http://www.ejabberd.im/

На устройствах pre 2.1 WhatsApp, вероятно, поддерживает подключение к своим серверам XMPP в фоновом режиме, но это не очень удобно для работы от батареи.

Теперь C2DM заменяется GCM (облачной почтовой службой Google) . Вы можете использовать его для доставки уведомлений в свое приложение. Для обмена сообщениями следует полагаться на такие протоколы, как xmpp (whatsapp), mqtt (facebook messenger), mtproto (телеграмма) и т. Д.

Если вы хотите ознакомиться с GCM. Попробуйте этот учебник от appsrox. Создайте приложение мгновенных сообщений с помощью Google Cloud Messaging (GCM)

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

Я не знаю, какая именно технология используется в whatsapp. Однако, если я должен внедрять уведомления, в которых нет поддержки push-уведомлений от ОС, я могу сделать две вещи:

  1. Опросите удаленный сервер каждые X секунд и проверьте наличие новых уведомлений (это более дорогой выбор).
  2. Запустите фоновый сервис, поддерживайте соединение с удаленным сервером, который будет передавать мне любые уведомления, которые должны быть получены (вроде моей, как моя собственная реализация push-уведомления).