【发布时间】:2018-01-29 18:55:56
【问题描述】:
Android 8 仅允许每小时进行几次后台位置更新。这不是问题,因为我大约每小时只请求一次,并且只有在设备不是 STILL 并且还没有被动更新来完成这项工作的情况下。所以可能一天几次。在 Android 7 上无法检测到电池使用情况。
但是,我确实有精度要求,我会丢弃水平精度低于 1000 英尺的位置(基本上是蜂窝塔位置)。问题是网络位置几乎立即出现,然后应用程序被限制并且永远不会收到可能来自 GPS 的下一个更新。通常,我会等待一分钟以获得所需精度的位置,然后放弃。在 Android 8 上,即使我等待一个小时,由于节流,我也只能每 20 分钟左右获取一次网络位置。
我找不到任何可以完全解决问题的最低准确度的 LocationRequest 设置。 PRIORITY_HIGH_ACCURACYabsolutley 不会这样做。这只是一个“提示”。 setSmallestDisplacement() 没有帮助,因为它不影响第一次更新。批量更新在极少数情况下有助于我的测试,但没有任何可靠性。
此外,从用户的角度来看,在PRIORITY_HIGH_ACCURACY 中等待任何时间都是不合理的,因为即使应用程序受到限制,位置指示器也会一直在设备上处于活动状态。
有人对我如何解决这个问题有建议吗?也许Android根本不打算在后台使用PRIORITY_HIGH_ACCURACY,尽管我在文档中找不到任何相关信息。
【问题讨论】:
标签: android geolocation location android-8.0-oreo