【发布时间】:2017-11-24 00:08:11
【问题描述】:
我有适用于 android 的应用程序,需要定期(比如说每 10 秒)向服务器发送位置更新。到目前为止没有什么特别的。然而,这完全是在后台作为一项服务完成的。此应用程序使用 LocationManager 定期接收当前 GPS 位置并将其发送到服务器。这当然是应用程序的简化故事,只关注问题
完整的应用程序在 android 6 之前工作正常。在 android 6 中,当屏幕在一段时间后关闭时,应用程序会停止发送更新,但在移动、屏幕打开或充电后会再次激活。这是由Doze功能引起的,这没关系。只要应用程序在移动后发送位置更新。但是在 Android 7 上,位置更新仅在屏幕打开或充电时在服务器上接收。移动(如步行)不会触发打瞌睡(至少服务器上没有接收到位置更新)。该应用程序也被列入电池优化白名单,但这无济于事。可能是由于 GPS/网络已关闭。
阅读 Android 文档,我没有看到当设备处于打瞌睡状态时,在后台以应用程序控制的间隔接收和发送当前 GPS 位置的解决方案。
是否有解决方案或可以给某人一个方向来解决我在 android 7 上遇到的这个 GPS 问题?
谢谢。
【问题讨论】:
标签: android-7.0-nougat android-gps