我试图估计C2DM消息是否能够被接收。
我创建了一个应用程序,依赖于在手机处于不可访问状态时向其推送信息。我了解到C2DM的投递并不是一定可靠的,但至少我想知道什么时候消息的投递是可能的;当它不可能时,我们可以使用自己的推送服务(并且可以判断何时连接成功)。
我注意到在Android上,即使没有登录Google帐户,C2DM仍然会发出身份验证令牌;即使在这种情况下已经声明不应该传递消息,但似乎仍会传递消息。如果GTalk未连接(防火墙或其他原因),请求身份验证令牌时根本没有响应。当手机处于飞行模式时,应用程序也会返回身份验证令牌。这意味着检查互联网是否可用并不像看起来那么简单。我找不到一个可靠的方法来检查GTalk是否已登录。
再次强调, 我不需要保证消息的投递,但至少我想知道投递是否可能。有人有有趣的解决方案吗?