Можно ли использовать GCM без учетной записи Google и сервисы Google Play на устройстве?
Я пишу системное приложение для устройства, на котором есть
не установлены сервисы Google Play и Google Play Store.
Я хочу реализовать push-уведомления.
Устройство работает под управлением Android 4.2.2, а официальные документы Google GCM говорят:
Аккаунт Google не является обязательным требованием для устройств под управлением Android 4.0.4 или выше.
Но эти документы связаны с новой версией GCM, которая использует Google Play Services
(не вариант для меня)
Итак, я попытался использовать старую, устаревшую библиотеку-помощник GCM.
Я установил GoogleServicesFramework4.0.x
на устройство (я могу установить GSF, но не Google Play Services)
Теперь я получаю ошибку AUTHENTICATION_FAILED
, а registrationId - null
.
Я предполагаю, что это связано с тем, что на устройстве не установлена учетная запись Google.
Требуется ли для библиотеки устаревших GCM учетная запись Google?
(Мой SENDER_ID верен, я уже проверил это)
В принципе, мой вопрос:
Возможно ли сделать работу GCM без учетной записи Google,
используя старую, устаревшую GCM-библиотеку?
ПРИМЕЧАНИЕ. Я не должен создавать учетную запись Google на устройстве (это требование )
Если это невозможно, попробуйте другой способ внедрения push-уведомлений.
(Обратите внимание, что большинство поставщиков push-уведомлений фактически используют GCM "под капотом" (например, Urban Airpush), поэтому не предлагайте их)
Я бы хотел избежать опроса сервера для уведомлений ( "pull notifications" ), если это возможно,
спасибо.
Ответы
Ответ 1
Как раз перед цитатой, которую вы опубликовали (о том, что аккаунт Google не требуется), у вас есть следующее:
Для него требуются устройства под управлением Android 2.2 или выше , в которых также установлено приложение Google Play Store или эмулятор под управлением Android 2.2 с API Google. Однако вы не ограничены развертыванием приложений Android через Google Play Store.
Поэтому, похоже, Google Play Store является обязательным условием для работы GCM.
Я не могу помочь вам с альтернативой GCM.
Ответ 2
В качестве альтернативы GCM вы можете использовать MQTT как альтернативу с открытым исходным кодом и популярным push-уведомлением, если на устройстве отсутствуют учетные записи Google и службы Google Play. Facebook использовал аспекты MQTT в Facebook Messenger.
Для реализации MQTT требуется:
1) брокер MQTT, который работает на стороне сервера. Это может быть что-то вроде брокера москитов, который является Open Source.
2) клиентскую библиотеку MQTT, которую вы включаете в свое приложение для Android, позволяя вашему приложению подключаться, подписываться и публиковать сообщения. Существует ряд вариантов Java, перечисленных в http://mqtt.org/software
3), чтобы придумать способ уникальной идентификации пользователей или устройств, а затем использовать это как тему, чтобы вы могли индивидуально публиковать сообщение на одном устройстве.
Дейл Лейн написал хороший путеводитель по этому вопросу (http://dalelane.co.uk/blog/?p=1599), и есть также хороший набор ресурсов о MQTT (https://github.com/mqtt/mqtt.github.io/wiki)
Кроме того, приведенная ниже запись в блоге Github дает практический пример реализации push-уведомления MQTT для Android:
http://tokudu.com/post/50024574938/how-to-implement-push-notifications-for-android
https://github.com/tokudu/AndroidPushNotificationsDemo