2

如果用户在他的帐户中没有云到设备消息传递 (C2DM),C2DM 将无法工作,这是真的吗?

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

4

1 回答 1

14

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

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

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

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

C2DM 限制:

  • 消息大小限制为 1024 字节。
  • Google 限制了发件人发送的消息总数,以及发件人发送到特定设备的消息数量
  • C2DM 不保证消息的传递或顺序
  • C2DM 要求用户在其移动设备上设置其 Google 帐户。
  • C2DM 需要运行 Android 2.2 或更高版本并安装了 Market 应用程序的设备

服务器应该是

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

用于预 OS2.2 设备的其他技术:

  • 轮询而不是推送
  • 短信
  • 持久 TCP/IP
  • 第三方产品

轮询而不是推送:Android 应用程序可以定期轮询服务器以获取来自后台本地服务的新消息。您轮询的次数越多,您就越接近实时推送。

  • 进阶:易于实施。
  • 缺点:不是实时的。会耗尽电池。

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

  • 进阶:易于实施。完全实时更新。
  • 缺点:做起来可能很昂贵。

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

Persistent TCP/IP:android 应用程序启动与服务器的长期空闲 TCP/IP 连接,并通过偶尔发送 keepalive 消息来维护它。每当服务器上有新内容时,它都会通过 TCP 连接向手机发送消息。

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

第三方产品

  • Urban Airship Push:最大的缺点是它需要用户在他们的设备上安装 AirMail 应用程序。
  • 执事项目
  • xtify
  • pushdroid.org
于 2011-11-25T13:58:44.603 回答