Можно ли использовать GCM без учетной записи Google и сервисы Google Play на устройстве? - программирование
Подтвердить что ты не робот

Можно ли использовать 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" ), если это возможно,
спасибо.

4b9b3361

Ответ 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