没有谷歌帐户的Android Cloud to Device Messaging

时间:2011-11-25 12:22:53

标签: android android-c2dm google-cloud-messaging

如果用户的帐户中没有Cloud to Device Messaging(C2DM),C2DM将无法正常工作吗?

如果是这样,如何在没有Google帐户的情况下进行推送通知?

1 个答案:

答案 0 :(得分:14)

发送推送通知的不同技术可以列出如下

  • OS2.2上的Android云到设备消息传递(C2DM)
  • 适用于OS2.2之前设备的其他技术。

云到设备消息传递(C2DM)OS2.2 +:Android平台中使用的标准推送通知方法称为Android Cloud to Device Messaging(C2DM)。该服务提供了一种简单,轻量级的机制,服务器可以使用该机制告诉应用程序直接联系服务器,以获取更新的数据。

C2DM允许向Android应用发送轻量级消息。消息传递服务不是为通过消息发送大量用户内容而设计的。相反,它应该用于告诉应用程序服务器上有新警报,以便应用程序可以获取它。

C2DM限制:

  • 邮件大小限制为1024字节。
  • Google限制发件人汇总发送的邮件数量,以及发件人发送给特定设备的邮件数量
  • C2DM不保证交付或消息顺序
  • C2DM要求用户在其移动设备上设置自己的Google帐户。
  • C2DM要求运行Android 2.2或更高版本并且还安装了市场应用程序的设备

服务器应

  • 能够使用HTTPS与C2DM Server进行通信。
  • 能够与我们的客户沟通。
  • 能够触发对C2DM服务器的HTTP请求。
  • 能够根据需要处理请求和队列数据。例如,它应该能够执行指数退避。
  • 能够存储ClientLogin Auth令牌和客户端注册ID。 ClientLogin Auth令牌包含在发送消息的POST请求的标头中。有关此主题的更多讨论,请参阅已安装应用程序的ClientLogin。服务器应该存储令牌,并有一个策略来定期刷新它。

适用于OS2.2之前设备的其他技术:

  • 投票而非推动
  • SMS
  • 持久性TCP / IP
  • 第三方产品

轮询而不是推送:Android应用可以定期轮询服务器以获取来自后台本地服务的新消息。你越接近实时推动就越频繁地进行投票。

  • 高级:易于实施。
  • Disadv:不是实时的。会杀死电池。

短信:Android应用可以拦截Android手机中的短信。如果服务器可以在有通知时发送短信,Android应用可以接收短信,然后检查新数据在服务器上。

  • 高级:易于实施。完全实时更新。
  • Disadv:做起来费用可能很高。

爱立信实验室提供托管服务,允许发送最多2000个短信。

持久性TCP / IP :Android应用程序启动与服务器长期存在的大部分空闲TCP / IP连接,并通过偶尔发送keepalive消息来维护它。只要服务器上有新内容,它就会通过TCP连接向手机发送消息。

  • 高级:完全实时更新。
  • Disadv:很难在手机和服务器端实现可靠的服务。众所周知,Android操作系统能够在内存不足时终止服务,因此我们的通知服务很容易消失。我们的手机进入睡眠状态会发生什么?想象一下,如果所有的应用程序都使用相同的技术。将有足够的开放连接将耗尽电池。

第三方产品

  • Urban Airship Push:最大的缺点是需要用户将AirMail应用程序安装到他们的设备上。
  • 执事项目
  • xtify
  • pushdroid.org