如何避免三星设备的电池优化? (S6、S7 和 S8)

Posted

技术标签:

【中文标题】如何避免三星设备的电池优化? (S6、S7 和 S8)【英文标题】:How I can avoid battery optimization of Samsung devices? (S6, S7 and S8) 【发布时间】:2018-01-17 10:30:10 【问题描述】:

我有一个 GPS 跟踪 android 应用程序,当有人需要用户的位置时,它会接收持续的推送消息。

每次收到推送时,我都会在他接收推送消息的同时启动定位服务,在 X 时间内发送位置。

问题始于 android Doze 系统,它阻止了 http 请求。我可以收到消息,但我永远无法发送我当前的位置(我收到了 http 连接超时和对 Google 的 ping 错误)。但我可以通过 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 请求并以编程方式将应用程序添加到电池白名单中来解决它。

现在,该应用程序可以在所有设备上正常运行,除了 S6 以上的三星设备,这些设备具有“智能管理器”系统。我尝试将应用手动添加到三星的电池白名单(设置 -> 设备维护 -> 电池 -> 未监控的应用),但问题仍然存在。

如果我让设备在屏幕关闭且不充电的情况下保持一段时间,它会停止发送位置,但他仍然会收到推送消息。

谁能帮我一个神奇的解决方案?我看到了一个所谓的“包列表”,其中包含许多三星自动将其包含在白名单中的应用程序(例如 Facebook、Whatsapp、Life360),但我找不到将我的应用程序自动添加到此列表中所需的操作。

【问题讨论】:

您找到解决方案了吗?如果你,请帮助我。提前致谢。 不,我还是有问题... 请参考:seap.samsung.com/forum-topic/… 只是为了澄清一下:我假设由于这是在其他手机上“工作”,因此该服务作为“粘性”服务启动。你能确认一下吗? 【参考方案1】:

根据@ManmeetP 提供的链接,看来您唯一的选择是使用三星的“Knox”SDK:ApplicationPolicy.addPackageToBatteryOptimizationWhiteList()

https://seap.samsung.com/api-references/android-standard/reference/android/app/enterprise/ApplicationPolicy.html

这意味着为所有用户将该 SDK 捆绑到您的应用中 =(

【讨论】:

以上是关于如何避免三星设备的电池优化? (S6、S7 和 S8)的主要内容,如果未能解决你的问题,请参考以下文章

三星 S7 不兼容,虽然 android 游戏控制台说设备受支持

Android Studio - 无法连接到设备(三星 Galaxy S7)

引导数据切换在移动设备上不起作用

三星A3A5A7G7J5J7S6系列等新机型的部分手机解锁 ROOT刷机

DOZE 模式三星设备

如何为三星 S7 启用 USB 调试