我在提交表单时尝试获取用户的gps位置(表单结果保存到文件中,因此无需连接互联网),这是我尝试过的:
1)获取位置更新(请求在0秒内更新0秒间隔和0米距离)=>花费太长时间(最多5分钟),如果用户没有连接到互联网,它将需要永远。
2)获取最后一个已知位置,如果它不可用(null),则尝试获取位置更新=> 95%的时间它是一个空位(特别是当我重新安装应用程序时),当我尝试获取位置更新时,我得到了相同的先前问题。
我无法弄清楚我应该做什么,请帮忙吗?我正在使用Google Play服务获取位置信息。我对所有解决方案持开放态度。
另外我注意到当启用连接时它不会花太长时间(我正在使用PRIORITY_LOW_POWER),但即使在这种情况下我也没有在通知栏上看到任何闪烁的gps图标,这是正常的? (在Android 5.1.1上测试)。
谢谢。
答案 0 :(得分:0)
您是否尝试过使用Google
提供的Fused Location Api
。这个api可以帮助您快速获得位置更新。容易。另请阅读Android Location docs以获取更多信息
答案 1 :(得分:0)
另外我注意到,当连接启用时,它不会花费太长时间(我使用PRIORITY_LOW_POWER),但即使在这种情况下,我也没有看到任何闪烁的gps通知栏上的图标,这是正常的吗? (在Android 5.1.1上测试)。
低功耗优先级意味着,位置api不会对您设备上的任何位置提供商提出任何请求。并且您没有看到闪烁的gps图标,因为低优先级将无法启用gps无线电。它会等到其他客户请求。
获取位置更新(请求在0秒内更新0秒间隔和0米距离)=>花费太长时间(最多5分钟),如果用户没有连接到互联网,则需要很长时间。
您是否尝试过PRIORITY_LOW_POWER?如果是,这与我的第一段相关。
获取最后一个已知位置,如果它不可用(null),则尝试获取位置更新=> 95%的时间它是一个空位(特别是当我重新安装应用程序时),当我尝试获取位置更新时,我遇到了同样的问题。
同样,使用PRIORITY_LOW_POWER
查看相同结果也是正常的可能的解决方案是下面的一个
PRIORITY_HIGH_ACCURACY
PRIORITY_BALANCED_POWER_ACCURACY