我正在开发一个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
自动获取更新。那么请告诉我该怎么做?
答案 0 :(得分:1)
问题1
每个提供商都有利弊,gps可以提供更准确的结果和更多的功耗。网络提供商以较少的电力使用提供较不准确的结果您可以将gps和网络提供商结合起来,但已经有一个提供商为您提供了所有内容:fused location provider
问题2
是的,您可以在gps提供程序上实现简单的超时机制。因此,当超时时,启动网络提供商的位置请求。
但我建议看这个video。所以这是很好的解释 你的第二个问题。