安卓 C2DM 睡眠手机

Posted

技术标签:

【中文标题】安卓 C2DM 睡眠手机【英文标题】:Android C2DM sleeping phone 【发布时间】:2011-01-11 19:41:16 【问题描述】:

根据this,android C2DM 通过心跳机制保持套接字处于活动状态,使其能够接收推送消息。这让我希望我可以通过有效的 wifi 连接向正在睡觉的手机发送消息。

我已经将“delay_while_idle”设置为“0”。如果我的手机屏幕关闭,则消息会发送,但如果手机进入睡眠状态则不会发送(测试间隔为 20 分钟,1-6 小时)。

为了以防万一,我已经获得了部分 cpu 锁 + 完整的 wifi 锁。

我只是犯了根本性的错误,还是我误解了 C2DM 推送功能?

我可以向睡眠中的手机发送消息吗?

【问题讨论】:

您可以向睡眠电话发送消息,是的,但有一些问题和注意事项。确保您在接收器中获得了唤醒锁定,并查看此线程以获取更多信息:groups.google.com/group/android-c2dm/browse_thread/thread/… 这似乎是解决方案:“所有,我认为 android 2.3 将允许开发人员解决这个问题。我是 SIP 应用程序的作者(CSipSimple - 在 googlecode 上搜索;)) . 阅读 Android 2.3 SIP stock application 的源代码,我注意到他们使用了一种新型 wifi lock .... 它是:WifiManager.WIFI_MODE_FULL_HIGH_PERF (int 3)。" 您是否尝试过更改 Wi-Fi 睡眠策略? 【参考方案1】:

使用警报管理器而不是唤醒锁可以让您的手机保持足够的活力。请参阅此implementation。将对此进行测试。

【讨论】:

以上是关于安卓 C2DM 睡眠手机的主要内容,如果未能解决你的问题,请参考以下文章

安卓聊天应用开发

检测安卓手机是不是连接到局域网

安卓手机总是自动断网!

安卓笔记20170118

如何通过 c2dm 通知将 Android 从睡眠中唤醒并开始活动?

安卓推送通知