我们的应用程序使用Google Fused location API每3分钟接收一次位置更新。 位置请求设置如下 -
3min
1 min
PRIORITY_BALANCED_POWER_ACCURACY
在正常运行的情况下,正确接收位置更新,位置准确性非常好(大约20-25米)。
当地图应用程序打开时,它会收到GPS位置,因此我们的应用程序也开始接收位置更新,这些更新基本上来自GPS收发器(我知道这一点,因为后续位置更新也具有速度和高度值) 。
现在关闭地图应用程序时出现问题。我们的应用程序接收位置更新,但位置坐标不会更改,并且收到的每个后续更新都具有更高的准确度值。更新可能达到甚至1000米的准确性,并且没有收到准确的位置。再次打开地图应用程序将使我们的应用程序再次获得准确和更新的位置。
这个问题也可以是设备特定的,因为我在摩托罗拉Moto G上看到了这个问题,而不是我的其他三星或Karbonn手机。
答案 0 :(得分:0)
根据我的经验,将优先级设置为PRIORITY_BALANCED_POWER_ACCURACY
永远不会从GPS获取位置,除非其他应用正在使用它。这与您在应用中找到的行为相同(在您的情况下,只有在地图打开时才能获得GPS定位),这似乎是一般行为(请参阅Does PRIORITY_BALANCED_POWER_ACCURACY exclude the GPS provider?)。
我没有找到任何官方文档来说明这一点,所以我认为它可能取决于设备。在我的测试中,每当我需要GPS定位时,我需要将优先级更改为PRIORITY_HIGH_ACCURACY
。
无论如何,在某些设备中显示的已知问题(57707)导致位置提供程序在PRIORITY_BALANCED_POWER_ACCURACY
中设置时停止接收位置更新,直到设备重新启动。