安卓 C2DM : Determine if push notification can be delivered now

标签 android push-notification android-c2dm

有没有办法确定是否可以立即发送推送通知? 据我所知这是不可能的,但我不确定。

所以我的场景是这样的: 我有一个安卓应用 我有自己的服务器

我的 Android 手机上的应用程序应该与我 friend 的 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)

最佳答案

is there a way to determine, if a push notification can be delivered right now?

没有。无法保证 C2DM 消息永远被传递,更不用说立即传递了。

Is it possible, to dertemine if phone B is online?

手机B可以知道自己是否在线。如果您使用某种长期保持的套接字连接(例如 XMPP)实现服务器,则该服务器可以知道它是否具有与电话 B 的开放套接字连接。

关于安卓 C2DM : Determine if push notification can be delivered now,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9645801/

相关文章:

android - Polyline Android 中没有 GeoDesic

android - 如何在 Amazon App Store 应用程序中打开我的所有应用程序列表?

android - std::string 操作(即 stol、stoi)未找到 NDK8d

iphone - 我想从我的iPhone发送通知到另一部iPhone

iphone - 当收到 RemoteNotification 时跳转到其他页面并取消位置

android - C2DM VB.Net 代码 fragment 返回 Error=MissingRegistration

android - 我的屏幕保护程序应用程序中奇怪的生命周期行为

如果生存时间超过 1 天,Azure 通知中心注册到期日期不会更新

php - android使用谷歌c2dm一次向许多设备推送通知

node.js - 使用node.js推送到C2DM