我们正在构建一个应用程序,可以接收来自Google Play服务的推送通知(几天前从GCM转移)。
我们的问题是,在某些设备上,在睡眠超过15分钟后,即使WiFi和3G开启,推送仍未到达。
无论我们做什么 - 服务器上的标志(time_to_live,空闲延迟等),从GCM转移到播放服务,检查应用清单中的正确权限。什么都没有帮助。
当设备未处于睡眠模式时,通知就可以了。
这个问题非常令我们感到不安。
很乐意提供帮助或建议。
谢谢,
诺姆
答案 0 :(得分:0)
由于您的需求相当零散,因此在电池使用方面,持有唤醒锁定甚至是部分锁定锁定很可能是一个非常糟糕的选择。更好的方法是设置警报以定期唤醒并运行小型服务以检查消息。我怀疑,如果你等了足够长的时间,其他东西就会唤醒设备,你就会得到你的信息。
编辑1:
尽管如此,您仍然可能需要android.permission.WAKE_LOCK
权限才能让设备保持足够长的时间以便在返回睡眠状态之前处理消息。至少你显然是用GCM做的。
编辑2: 您可能还会遇到apparent bug with the heartbeat interval的结果,这会影响使用某些运营商/路由器的用户。