我正在为有设备的设备编写系统应用程序 没有安装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),所以不建议那些)
我想避免在可能的情况下轮询服务器以获取通知(“拉动通知”),
谢谢。
答案 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