我正在尝试对是否可以接收 C2DM 消息进行最佳猜测。
我创建了一个应用程序,它依赖于在物理上无法访问时将信息推送到手机。我知道 C2DM 不能保证传递,但我至少想知道何时可以传递消息;如果不是,我们会退回到我们自己的推送服务(并且实际上可以判断我们何时连接)。
我注意到即使没有登录的谷歌帐户,Android 上的 C2DM 仍会发出身份验证令牌;在这种情况下,消息似乎仍然被传递,即使它声明它们不应该传递。如果 GTalk 未连接(防火墙或其他原因),则在请求身份验证令牌时根本不会返回任何响应。当手机处于飞行模式时,身份验证令牌会返回给应用程序。这意味着它不像检查互联网是否可用那么简单。我找不到检查 GTalk 是否已登录的可靠方法。
同样,我不需要保证消息的传递,但我至少想知道传递是否可能。有没有人有有趣的解决方案?