如何同时使用GPS和NETWORK_PROVIDER,结果中几乎没有错误

时间:2016-05-10 14:18:04

标签: android gps android-gps

我正在开发一个Android应用程序,我正在使用我的设备的当前位置。我使用requestLocationUpdates("gps", 5000, 0, new LocationDetector()); LocationManager方法获取更新。在onLocationChanged()的{​​{1}}方法中,我正在使用我设备的当前位置。现在:

问题#1:我已经记录LocationListener以及"gps"检测到的当前位置有一些错误(错误表示我的设备的位置并不完全是由" gps"或" network_provider")返回的。所以我想知道NETWORK_PROVIDER"gps"的结果中可能存在的最大错误是多少?有没有办法从NETWORK_PROVIDER"gps"获得准确的结果?

问题2:在我的设备中,NETWORK_PROVIDER在封闭区域(如房间)内无效,所以我想使用"gps"以及{ {1}}获取位置信息的更新。因此,当我的设备"gps"无效时,我应该通过NETWORK_PROVIDER自动获取更新。那么请告诉我该怎么做?

1 个答案:

答案 0 :(得分:1)

问题1

每个提供商都有利弊,gps可以提供更准确的结果和更多的功耗。网络提供商以较少的电力使用提供较不准确的结果您可以将gps和网络提供商结合起来,但已经有一个提供商为您提供了所有内容:fused location provider

问题2

是的,您可以在gps提供程序上实现简单的超时机制。因此,当超时时,启动网络提供商的位置请求。

但我建议看这个video。所以这是很好的解释 你的第二个问题。