2

我们的应用程序使用 Google Fused location API 每 3 分钟接收一次位置更新。位置请求设置如下——

  • 间隔 -3min
  • 最快间隔——1 min
  • 优先 -PRIORITY_BALANCED_POWER_ACCURACY

在正常运行的场景下,位置更新接收正常,定位精度还不错(20-25m左右)。

当 Maps 应用程序打开时,它接收到 GPS 位置,因此我们的应用程序也开始接收位置更新,这些更新基本上来自 GPS 收发器(我知道这是因为后续位置更新也有速度和高度值)。

现在关闭地图应用程序时会出现问题。我们的应用程序接收位置更新,但位置坐标不会改变,并且收到的每个后续更新都具有更高的准确度值。更新的准确度甚至可能达到 1000m,并且没有收到准确的位置。再次打开地图应用程序将使我们的应用程序再次收到准确和更新的位置。

这个问题也可能是特定于设备的,因为我在摩托罗拉 Moto G 上看到了这个问题,而不是在我的其他三星或 Karbonn 手机上看到了这个问题。

4

1 回答 1

0

根据我的经验,将优先级设置为PRIORITY_BALANCED_POWER_ACCURACY从不从 GPS 获取位置,除非其他应用程序正在使用它。这与您在应用程序中发现的行为相同(在您的情况下,您仅在地图打开时获得 GPS 定位),这似乎是一般行为(请参阅是否 PRIORITY_BALANCED_POWER_ACCURACY 排除 GPS 提供商?)。

我还没有找到任何官方文档作为背景,所以我认为它可能与设备有关。在我的测试中,每当我需要 GPS 定位时,我都需要将优先级更改为PRIORITY_HIGH_ACCURACY.

无论如何,在某些设备中显示了一个已知问题 ( 57707 ),导致位置提供程序在设置时停止接收位置更新,PRIORITY_BALANCED_POWER_ACCURACY直到设备重新启动。

于 2015-05-25T14:49:10.203 回答