【问题标题】:Can't get HIGH_ACCURACY background locations in Android 8+在 Android 8+ 中无法获取 HIGH_ACCURACY 背景位置
【发布时间】: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


    【解决方案1】:

    如果您需要 GPS,只需使用 GPS 提供商即可。不要乱用标准,要求你真正需要的。

    【讨论】:

    • 这可以作为一种后备策略,但我不想一般仅限于 GPS 提供商。我只是有一个准确度要求,理想情况下来自 wifi 网络、“关闭”手机信号塔,或者谷歌对 FusedProvider 所做的任何其他魔法。我只希望 GPS 也包含在内。
    • 回退到 GPS 工作,但有点太好了。似乎如果您在后台向 GPS 提供商重新请求,您根本不会受到限制。我已经打开了一个错误报告。 issuetracker.google.com/issues/72477437
    猜你喜欢
    • 2011-02-10
    • 2015-08-07
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    相关资源
    最近更新 更多