【发布时间】:2012-03-27 14:19:53
【问题描述】:
有没有办法确定是否可以立即发送推送通知? 据我所知这是不可能的,但我不确定。
所以我的场景是这样的: 我有一个安卓应用 我有自己的服务器
我的 Android 手机上的应用程序应该与我朋友的 Android 手机上的应用程序通信。 现在我正在寻找一个实时通信框架,我想 C2DM 可以帮助我。
那么让我们说: 我在手机 A 上的应用程序应该向我在手机 B 上的应用程序写一条小消息。 让我们假设,电话 A 在线并且可以与我的服务器通信。所以电话 A 会将消息发送到我的服务器,而我的服务器现在会尝试将此消息传递给电话 B。
这就是我的服务器将尝试通过 C2DM 将消息传递到电话 B 的关键点,这也是我的服务器需要知道是否可以通过 C2DM 发送此消息的关键点。否则我的服务器应该使用另一种通信方式来传递消息,例如短信或其他方式。
所以重点是,我现在真的需要知道它是否可以通过 C2DM 传送到电话 B(当然我的服务器知道电话 B 的 C2DM 注册 ID)。 否则,例如如果电话 B 没有连接到互联网并且无法接收 C2DM 推送通知,我的服务器会向电话 B 发送短信。
是否可以确定电话 B 是否在线? 我尝试做的是接触每个用户(如果他的手机已打开)。如果他在线,则通过 C2DM,否则通过 SMS,以便在此时以任何方式传递消息。
注意: 我知道 C2DM 可以存储通知并在电话 B 在线时传递存储的通知,但这不是我想要使用它的方式。另请注意,我知道(架构)如何使用 C2DM。因此,应该从电话 A 传递到电话 B 的“消息”将不会直接在 C2DM 推送通知中传递,消息文本/敏感数据作为消息正文。当然,传递的消息只是一条“更新消息”,用于告诉我手机 B 上的应用程序发生了一些变化,应用程序现在应该连接到我的服务器以获取(轮询)最新状态的“短信”已经从电话 A 发送给您(电话 B)
【问题讨论】:
标签: android push-notification android-c2dm