我有Android的应用程序需要定期发送(假设每10秒)一次位置更新到服务器。到目前为止没什么特别然而,这完全在后台作为服务完成。此应用程序使用LocationManager定期接收当前GPS位置并将其发送到服务器。这当然是应用程序的简化故事,只关注问题
完整的应用程序正常工作,直到安卓6.在Android 6中,应用程序停止发送更新,一段时间后屏幕关闭,但在移动,屏幕或充电后再次活跃。这是由Doze功能引起的,这是oke。只要应用程序在移动后发送位置更新。但是在Android 7上,只有在屏幕打开或充电时才会在服务器上接收位置更新。移动(如步行)不会触发打开Doze(至少在服务器上没有接收到位置更新)。该应用程序也被列入白名单以进行电池优化,但这并没有帮助。可能由GPS /网络关闭。
阅读Android文档,当设备处于打盹状态时,我没有看到以后台应用程序控制的间隔接收和发送当前GPS位置的解决方案。
是否有解决方法或者可以给某人一个方向来解决我对Android 7的GPS问题?
感谢。
答案 0 :(得分:1)
找到解决方案。确保它是前台服务而不是backgorund。可以在https://developer.android.com/preview/features/background-location-limits.html
中找到一篇好文章