Я ищу написать приложение, которое получает push-уведомления от сервера. Я нашел несколько способов сделать это.
- SMS - перехватывать входящие SMS и инициировать извлечение с сервера
- Периодически опрашивать сервер
У каждого свои ограничения. SMS-нет гарантии по времени прибытия. Опрос может разрядить аккумулятор.
У вас есть лучшее предложение, пожалуйста? Огромное спасибо.
Ответы:
Официальный ответ Google является
Android Облако устройств Framework Messaging (устаревшее)Google Cloud Messaging (устаревшее)Firebase Cloud MessagingОн будет работать на Android> = 2.2 (на телефонах с Play Store).
источник
( перекрестная публикация из ответа, который я дал на аналогичный вопрос - поддерживает ли Android пуш-уведомление почти в реальном времени? )
Недавно я начал играть с MQTT http://mqtt.org для Android как способ сделать это (например, push-уведомление, которое не SMS, а управляемая данными, почти немедленная доставка сообщений, не опрос и т. Д.)
У меня есть запись в блоге с дополнительной информацией об этом на случай, если это будет полезно
http://dalelane.co.uk/blog/?p=938
(Примечание: MQTT - это технология IBM, и я должен отметить, что я работаю на IBM.)
источник
Мое понимание / опыт работы с push-уведомлениями Android:
C2DMGCM - если ваша целевая платформа Android 2.2+, то сделайте это. Только один улов, пользователи устройства должны всегда входить в учетную запись Google, чтобы получать сообщения.MQTT - подход на основе Pub / Sub, требует активного соединения с устройством, может разряжать батарею, если не реализовано разумно.
Дьякон - Может быть не очень хорошо в долгосрочной перспективе из-за ограниченной поддержки сообщества.
Изменить : Добавлено 25 ноября 2013
GCM - Google говорит ...
источник
Платформа обмена сообщениями Android Cloud to Device
Важно: C2DM официально объявлен устаревшим с 26 июня 2012 года. Это означает, что C2DM прекратил принимать новых пользователей и запросы квот. Никакие новые функции не будут добавлены в C2DM. Однако приложения, использующие C2DM, продолжат работать. Существующим разработчикам C2DM рекомендуется перейти на новую версию C2DM, которая называется Google Cloud Messaging для Android (GCM). См. Документ Миграция C2DM в GCM для получения дополнительной информации. Разработчики должны использовать GCM для новых разработок.
Пожалуйста, проверьте следующую ссылку:
http://developer.android.com/guide/google/gcm/index.html
источник
Здесь я написал несколько шагов для того, как получить RegID и уведомление, начиная с нуля
Вы можете найти полный учебник в ссылке ниже URL
Отсканируйте код, чтобы получить идентификатор регистрации (токен устройства для push-уведомлений).
Настроить проект для GCM
Обновить файл AndroidManifest
Для включения GCM в нашем проекте нам нужно добавить несколько разрешений в наш файл манифеста. Перейдите в AndroidManifest.xml и добавьте ниже код «Добавить разрешение».
Добавить объявление приемника вещания GCM
добавьте декларацию GCM Broadcast Receiver в тег вашего приложения
Добавить объявление GCM Servie
Получить регистрационный идентификатор (токен устройства для push-уведомлений)
Теперь перейдите к своей деятельности по запуску / всплеску
Добавить константы и переменные класса
Обновите методы OnCreate и OnResume
Примечание : пожалуйста, сохраните REGISTRATION_KEY, это важно для отправки сообщения PN в GCM, также имейте в виду, что это будет уникальным для всех устройств, при использовании этого только GCM будет отправлять Push-уведомления.
Получать Push-уведомления
Добавить GCM Broadcast Receiver Class
Так как мы уже объявили «GcmBroadcastReceiver.java» в нашем файле манифеста, давайте создадим этот код класса получателя обновления класса следующим образом.
Добавить класс обслуживания GCM
Так как мы уже объявили «GcmBroadcastReceiver.java» в нашем файле манифеста, давайте создадим этот код класса получателя обновления класса следующим образом.
источник
Существует новая попытка с открытым исходным кодом разработать библиотеку Java для push-уведомлений на Android на основе веб-сервера Meteor. Вы можете проверить это в блоге проекта Deacon , где вы найдете ссылки на Meteor и репозиторий проекта GitHub. Нам нужны разработчики, поэтому, пожалуйста, распространите информацию!
источник
Вы можете использовать Xtify ( http://developer.xtify.com ) - у них есть веб-сервис push-уведомлений, который работает с их SDK. Это бесплатно и до сих пор, это работало очень хорошо для меня.
источник
или....
источник
Я рекомендую использовать GCM - Google Cloud Messaging для Android. Это бесплатно, а для простого использования это должно быть очень просто.
Однако для отправки уведомлений от вашего имени требуется сторонний сервер. Если вы хотите избежать очень хороших промышленных решений для службы push-уведомлений Android:
Diclaimer - я работаю в PushApps и использую их продукт в своих приложениях уже более года.
источник
По состоянию на 18.05.2016 Firebase - это унифицированная платформа Google для мобильных разработчиков, включая push-уведомления.
источник
Боюсь, вы нашли оба возможных метода. Google, по крайней мере на начальном этапе, собирался реализовать API GChat, который вы могли бы использовать для реализации push / pull. К сожалению, эта библиотека была вырезана под Android 1.0.
источник
Я не знаю, если это все еще полезно. Я достиг чего-то подобного с библиотекой Java на http://www.pushlets.com/
Althoug, делающий это в сервисе, не будет препятствовать тому, чтобы андроид выключил это, убивая поток слушателя.
источник
Google C2DM устарела, для этого вам необходимо воспользоваться новой услугой GCM (Google Cloud Messaging). Для documantation см http://developer.android.com/guide/google/gcm/gs.html
источник
C2DM: пользователи вашего приложения должны иметь учетную запись gmail.
MQTT: когда ваше соединение достигнет 1024, оно прекратит работу из-за того, что использовал «выбранную модель» linux.
Существует бесплатный сервис push и api для android, вы можете попробовать его: http://push-notification.org
источник
Бесплатный и простой метод:
Если ваша целевая база пользователей невелика (менее 1000) и вы хотите начать с бесплатного сервиса, тогда Airbop - лучший и самый удобный.
Сайт Airbop. Он использует сервис Google Cloud Messaging через свой API и обеспечивает хорошую производительность. Я использовал его для двух своих проектов, и его было легко реализовать.
Такие сервисы, как и Urbanship, превосходны, но обеспечивают весь стек развертывания, а не только функцию push-уведомлений.
Если ваша цель - только push-сервис, Airbop будет работать нормально.
Я не использовал Pushwoosh , но это также отличный выбор. Это позволяет пушить до 1 000 000 устройств бесплатно
источник
Я бы предложил использовать как SMS, так и HTTP. Если пользователь не вошел в систему, отправьте на его телефон SMS-сообщение, чтобы уведомить его, что сообщение ожидает.
Вот как работает этот сервис Ericsson Labs: https://labs.ericsson.com/apis/mobile-java-push/
Если вы реализуете это самостоятельно, сложно удалить входящее SMS, чтобы пользователь не увидел его. Или, может быть, это нормально, если они увидят это в вашем случае.
Похоже, это работает: Удаление SMS с помощью BroadCastReceiver - Android
Да, написание такого кода может быть опасным, и вы можете испортить чью-то жизнь, потому что ваше приложение удалило SMS, которого не должно было быть.
источник
Вы можете использовать Google Cloud Messaging или GCM , это бесплатно и просто в использовании. Также вы можете использовать сторонние push-серверы, такие как PushWoosh, что дает вам больше гибкости
источник
Есть много сторонних серверов, таких как Urban Airship , Xtify, Mainline , ... которые позволяют отправлять сообщения не только на Android, но и на iOS, Windows Phone ...
источник
Firebase Cloud Messaging (FCM) - это новая версия GCM. FCM - это кроссплатформенное решение для обмена сообщениями, которое позволяет отправлять сообщения безопасно и бесплатно. Наследует центральную инфраструктуру GCM для надежной доставки сообщений на Android, iOS, в Интернете (javascript), Unity и C ++.
По состоянию на 10 апреля 2018 года Google отклонил GCM. API сервера и клиента GCM устарели и будут удалены 11 апреля 2019 года. Google рекомендует перенести приложения GCM в Firebase Cloud Messaging (FCM), который наследует надежную и масштабируемую инфраструктуру GCM.
Ресурс
источник
Вы можете использовать Pusher
Это размещенный сервис, который позволяет очень просто добавлять данные и функции в реальном времени в веб-приложения и мобильные приложения.
Pusher предлагает библиотеки для интеграции во все основные среды выполнения и фреймворки.
PHP, Ruby, Python, Java, .NET, Go and Node
на сервереJavaScript, Objective-C (iOS) and Java (Android)
на клиенте.источник