【发布时间】:2018-01-17 10:30:10
【问题描述】:
我有一个 GPS 跟踪 Android 应用程序,当有人需要用户的位置时,它会接收持续的推送消息。
每次收到推送时,我都会在他接收推送消息的同时启动定位服务,在 X 时间内发送位置。
问题始于 android Doze 系统,它阻止了 http 请求。我可以收到消息,但我永远无法发送我当前的位置(我收到了 http 连接超时和对 Google 的 ping 错误)。但我可以通过 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 请求并以编程方式将应用程序添加到电池白名单中来解决它。
现在,该应用程序可以在所有设备上正常运行,除了 S6 以上的三星设备,这些设备具有“智能管理器”系统。我尝试将应用手动添加到三星的电池白名单(设置 -> 设备维护 -> 电池 -> 未监控的应用),但问题仍然存在。
如果我让设备在屏幕关闭且不充电的情况下保持一段时间,它会停止发送位置,但他仍然会收到推送消息。
谁能帮我一个神奇的解决方案?我看到了一个所谓的“包列表”,其中包含许多三星自动将其包含在白名单中的应用程序(例如 Facebook、Whatsapp、Life360),但我找不到将我的应用程序自动添加到此列表中所需的操作。
【问题讨论】:
-
您找到解决方案了吗?如果你,请帮助我。提前致谢。
-
不,我还是有问题...
-
只是为了澄清一下:我假设由于这是在其他手机上“工作”,因此该服务作为“粘性”服务启动。你能确认一下吗?
标签: android push-notification samsung-mobile location-services doze