是否可以在设备上使用没有Google帐户和Google Play服务的GCM?

时间:2014-01-24 15:48:53

标签: android push-notification google-cloud-messaging google-play-services google-account

我正在为有设备的设备编写系统应用程序 没有安装Google Play服务或Google Play商店。

我想实现推送通知。

该设备运行Android 4.2.2,官方Google GCM文档说:

  

运行Android 4.0.4或更高版本的设备不需要使用Google帐户。

但是这些文档与使用Google Play Services的新版GCM相关(不是我的选项

所以我尝试使用旧的,已弃用的GCM帮助程序库 我在设备上安装了GoogleServicesFramework4.0.x我可以安装GSF。但不能安装Google Play服务

我现在收到AUTHENTICATION_FAILED错误,registrationId为null 我猜这是因为设备上没有设置Google帐户 弃用的GCM库是否需要Google帐户?
(我的SENDER_ID是正确的,我已经检查过了)


基本上,我的问题是:
是否可以让GCM Google帐户,

  

注意:我不得在设备上创建Google帐户(这是要求

如果无法做到这一点,请提出另一种实施推送通知的方法 (请注意,大多数推送通知提供商实际上使用GCM“引擎盖”(例如Urban Airpush),所以不建议那些)

我想避免在可能的情况下轮询服务器以获取通知(“拉动通知”),
谢谢。

2 个答案:

答案 0 :(得分:11)

就在您发布的报价之前(不需要Google帐户),您有:

  

它需要运行Android 2.2或更高版本且安装了Google Play商店应用程序的设备,或运行带有Google API的Android 2.2的模拟器。但是,您不仅限于通过Google Play商店部署Android应用程序。

因此,Google Play商店似乎是GCM工作的必备条件。

Pushy是GCM的替代品,不需要Google帐户或Google Play服务。

答案 1 :(得分:7)

作为GCM的替代方案,当设备上不存在Google帐户和Google Play服务时,您可以将MQTT用作开源和流行的推送通知替代方案。 Facebook在Facebook Messenger中使用了MQTT的各个方面。

MQTT实施需要:

1)在服务器端运行的MQTT代理。这可能类似于开源的mosquitto经纪人。

2)您在Android应用中包含的MQTT客户端库,使您的应用能够连接,订阅和发布消息。 http://mqtt.org/software

列出了许多Java选项

3)提出一种唯一识别用户或设备的方法,然后将其用作主题,以便您可以将消息单独发布到一个设备。 Dale Lane写了一篇很好的指南(http://dalelane.co.uk/blog/?p=1599),还有一套关于MQTT的好资源(https://github.com/mqtt/mqtt.github.io/wiki

下面的博客文章Github示例提供了一个实现Android的MQTT推送通知的实际示例:

http://tokudu.com/post/50024574938/how-to-implement-push-notifications-for-android

https://github.com/tokudu/AndroidPushNotificationsDemo

相关问题