【问题标题】:GPS location takes forever if there is no connection如果没有连接,GPS 定位需要永远
【发布时间】:2017-07-12 18:45:00
【问题描述】:

我正在尝试在用户提交表单时获取用户的 gps 位置(表单结果保存到文件中,因此无需连接互联网),这是我尝试过的:

1) 获取位置更新(以 0 秒、0 秒间隔和 0 米距离请求更新)=> 时间过长(最多 5 分钟),如果用户未连接到互联网,则需要永远.

2)获取最后一个已知位置,如果它不可用(空),然后尝试获取位置更新 => 95% 的时间它是空位置(尤其是当我重新安装应用程序时),当我尝试获取位置更新我遇到了同样的问题。

我不知道我应该做什么,请帮忙?我正在使用 Google Play 服务来获取位置。我对所有解决方案持开放态度。

我还注意到,启用连接后不会花费太长时间(我使用的是 PRIORITY_LOW_POWER),但即使在这种情况下,我也没有在通知栏上看到任何闪烁的 gps 图标,这是正常的吗? (在 android 5.1.1 上测试)。

谢谢。

【问题讨论】:

  • 对于 GPS 定位,您需要开阔的天空,否则您将无法获得任何 gps 位置更新,连接到 Internet 连接有助于您的设备更快地定位它,所以这不是问题,这就是 gps 的工作方式,请阅读关于 GPS 及其工作原理

标签: android gps location


【解决方案1】:

您是否尝试过使用Google 提供的Fused Location Api。此 api 可以帮助您快速轻松地获取位置更新。另请阅读Android Location docs 了解更多信息

【讨论】:

【解决方案2】:

我还注意到,启用连接后不会花费太长时间(我使用的是 PRIORITY_LOW_POWER),但即使在这种情况下,我也没有在通知栏上看到任何闪烁的 gps 图标,这是正常的吗? (在 android 5.1.1 上测试)。

低功耗优先意味着,位置 API 不会向您设备上的任何位置提供程序发出任何请求。而且您没有看到闪烁的 gps 图标,因为低优先级不会启用 gps 无线电。它将等到其他客户端请求。

获取位置更新(以 0 秒、0 秒间隔和 0 米距离请求更新)=> 时间过长(最多 5 分钟),如果用户未连接到互联网,则需要永远。

您尝试过 PRIORITY_LOW_POWER 吗?如果是,这与我的第一段有关。

获取最后一个已知位置,如果它不可用(空),然后尝试获取位置更新 => 95% 的时间它是空位置(尤其是当我重新安装应用程序时),当我尝试获取位置更新我遇到了同样的问题。

同样,使用 PRIORITY_LOW_POWER 看到相同的结果是正常的

可能的解决方案是以下之一

  • PRIORITY_HIGH_ACCURACY

  • PRIORITY_BALANCED_POWER_ACCURACY

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 2011-11-04
    • 2012-07-12
    • 2021-03-17
    相关资源
    最近更新 更多