我有一个应用程序,每隔10秒更新一次Web服务的位置.但是,在API级别为23或更高级别的设备上,当打盹模式在15分钟后无法启动时,网络连接将丢失,并且应用程序无法向我的Web服务发送更多位置更新.
除了通过要求用户允许忽略电池优化(仅允许每15分钟更新一次位置)将应用程序列入白名单之外,还有哪些其他选项可以继续获取GPS位置更新并能够将它们发送到我的网络服务?
尽管克服打瞌睡模式是非常不道德的,但如果应用程序可以向用户解释电池问题,那么最好将应用程序列入白名单。
另一个选项是保持屏幕打开以避免触发打瞌睡模式。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)
这段代码将使屏幕保持打开状态。确保创建一个黑色或空的布局,就像 pokemon go 中的省电模式一样。
官方 Doze 文档允许将您的用例列入白名单。在这里检查一下。
| 归档时间: |
|
| 查看次数: |
1004 次 |
| 最近记录: |