融合位置 API 在关闭谷歌地图后给出高度不准确的位置
Posted
技术标签:
【中文标题】融合位置 API 在关闭谷歌地图后给出高度不准确的位置【英文标题】:Fused location API gives highly inaccurate location after closing google maps 【发布时间】:2015-08-06 20:44:02 【问题描述】:我们的应用程序使用 Google Fused location API 每 3 分钟接收一次位置更新。 位置请求设置如下——
间隔 -3min
最快间隔 - 1 min
优先级 - PRIORITY_BALANCED_POWER_ACCURACY
在正常运行场景下,位置更新接收正常,定位精度相当不错(20-25m左右)。
当地图应用程序打开时,它接收到 GPS 位置,因此我们的应用程序也开始接收位置更新,这些更新基本上来自 GPS 收发器(我知道这是因为后续位置更新也有速度和高度值) .
现在关闭地图应用程序时会出现问题。我们的应用程序接收位置更新,但位置坐标不会改变,并且收到的每个后续更新都具有更高的准确度值。更新的准确度甚至可能达到 1000m,并且没有收到准确的位置。再次打开地图应用程序将使我们的应用程序再次收到准确和更新的位置。
这个问题也可能是特定于设备的,因为我在摩托罗拉 Moto G 上看到了这个问题,而不是在我的其他三星或 Karbonn 手机上看到了这个问题。
【问题讨论】:
这可能会有所帮助 - ***.com/questions/20330606/… 【参考方案1】:根据我的经验,将优先级设置为 PRIORITY_BALANCED_POWER_ACCURACY
永远不会从 GPS 获取位置,除非其他应用正在使用它。这与您在应用程序中发现的行为相同(在您的情况下,您只有在地图打开时才能获得 GPS 定位),这似乎是一般行为(请参阅Does PRIORITY_BALANCED_POWER_ACCURACY exclude the GPS provider?)。
我还没有找到任何官方文档作为背景,所以我认为它可能与设备有关。在我的测试中,每当我需要 GPS 定位时,我都需要将优先级更改为 PRIORITY_HIGH_ACCURACY
。
无论如何,在某些设备中出现了一个已知问题 (57707),它会导致位置提供程序在 PRIORITY_BALANCED_POWER_ACCURACY
中设置时停止接收位置更新,直到设备重新启动。
【讨论】:
以上是关于融合位置 API 在关闭谷歌地图后给出高度不准确的位置的主要内容,如果未能解决你的问题,请参考以下文章
获取棉花糖中的当前位置 0,其中 23 API 以下使用融合位置给出准确的当前位置