在AOSP上启用推送通知

时间:2014-09-25 07:39:27

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

Push Notifications中启用AOSP的最佳方法是什么?

- 一种可能的方法是使用自定义服务打开持久的websocket连接。

根据this question中答案中的评论,他们使用了Parse.com PPNS推送服务。这是一个选项,但它会创建一个永远在PushService。我不认为它是电池效率的。

- 其他选项是将Google Play服务添加到AOSP ROM中。

Android 4.0.3之后,设备无需设置Google帐户即可获得推送通知。但设备应至少安装GoogleServicesFramework

当我们将所有Google Apps都包含在ROM中时,它会启用推送通知。 Google Apps套餐包含大量Google APK。

推送通知需要哪些?

将Google应用程序添加到构建的AOSP中是否合法?

2 个答案:

答案 0 :(得分:1)

创建一个轻量级后台服务,侦听网络更改操作,并在服务中发送任何ip address设备更改以推送服务器。您还需要每个设备的唯一标识符,可能是mac-address或其他一些hw UUID。推送服务器需要维护已注册客户端,其uuid和ip地址的映射。

此后台服务可bind to network socket并侦听来自推送服务器的连接。不存在持久连接,只是在后台运行的轻量级服务/守护进程。

对于处理此服务的节能方式,请选择look at Android L JobScheduling。这个SO question answer可以为您提供一些想法。您可能需要根据需要处理套接字(重新)绑定。

如果您在推送通知中稍有延迟就可以使用此解决方案。推送服务器需要重试连接,您可以使用一些启发式方法,例如让设备通知服务器其后台服务运行状态。

您需要在所有设备上安装/运行此服务。在设备上收到消息后,很容易看起来like a regular push notification

答案 1 :(得分:1)

在没有获得适当许可的情况下,将Google库包含在AOSP构建中是违法的。

这使得无法在AOSP设备上使用Google Cloud Messaging发送通知。

您可以做的是在不使用GCM的情况下向设备发送通知。您可以使用Pushy(https://pushy.me/),这是一个高度可靠的Android应用推送网关,可以独立于GCM使用自己的后台MQTT连接。

完全披露:我创立了Pushy。