发送推送通知的正确方法

时间:2014-10-23 08:58:01

标签: android notifications google-play google-cloud-messaging

我想从某个服务器向android设备发送通知。最明显(和耗电)的方法是使用服务/广播接收器继续搜索某些数据库中的任何新消息。

我相信还有其他方法可以完成这项工作。我看了一下GCM(谷歌云消息),似乎谷歌总是保持一些TCP / IP连接活跃。这实际上意味着使用GCM将使用更少的电力。

但是,我有一些关于GCM的问题。

  1. 用户是否需要拥有Google服务和已注册的游戏ID?
  2. 如果用户侧载了apk,他仍然可以接收通知吗?
  3. 我想知道GCM是否有替代品

    运行分叉Android版本的设备如诺基亚X,kindle等呢?如何将推送通知发送到这些设备?

1 个答案:

答案 0 :(得分:1)

  

用户是否需要拥有Google服务和已注册的游戏ID?

是的,您需要在开发中使用Google Play服务。但是,用户无需安装Google帐户或安装Google Play服务。

  

如果用户侧载apk,他仍然可以接收通知吗?

向设备发送通知时必须遵循的步骤是:

  1. 开发人员在Google Developer Console
  2. 中创建应用程序
  3. 用户安装应用程序
  4. 应用程序获取NotificationID并将其发送到您的数据库
  5. 您将NotificationID存储在服务器上,并附上任何其他相关信息(您的用户名,设备信息等)
  6. 每当您想要发送通知时,您都会连接到GCM,发送一个或多个NotificationID和通知内容。
  7. 与NotificationID相关的用户将在您的应用程序中收到通知内容。
  8. 执行您需要的任何操作。
  9. 看看here

    恕我直言,Android中没有任何真正的替代GCM(基于效率和简单性)。您可以寻找第三方服务,帮助您实施和增加价值(营销,商业智能)。作为示例,请查看UrbanShip

    如果您想实施自己的解决方案,请查看WebSockets。这将保持服务器和设备之间的活动通信。这些套接字被认为是服务器和移动设备之间的实时通信。

    两个问题:

    • 影响电池的应用程序如何取决于您的实施和应用程序用例(您发送信息的频率如何,连接建立的时间有多长)。
    • 我不知道在Android中有任何本机实现,但有一些库来自开源项目。谷歌吧。