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

时间:2017-08-09 13:35:23

标签: android push-notification samsung-mobile location-services doze

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

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

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

现在,该应用程序在所有设备上运行良好,除了在S6上的三星设备上,有#34;智能管理器"系统。我尝试将应用程序手动添加到三星的电池白名单(设置 - >设备维护 - >电池 - >未监控的应用)中,但问题仍然存在。

如果我让设备关闭屏幕并且没有充电,在一段时间内,它会停止发送位置,但他仍然收到推送消息。

任何人都可以帮我一个神奇的解决方案吗?我看到了一个涉嫌的包装清单"有很多应用程序,三星自动进入白名单(例如Facebook,Whatsapp,Life360),但我无法找到我需要做的事情来自动将我的应用程序添加到此列表中。

1 个答案:

答案 0 :(得分:0)

根据@ManmeetP提供的链接,看起来您唯一的选择是使用三星"诺克斯" SDK:ApplicationPolicy.addPackageToBatteryOptimizationWhiteList()

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

这意味着将SDK捆绑到您的应用中以供所有用户使用=(