如何同时使用 GPS 和 NETWORK_PROVIDER,并且结果几乎没有错误
Posted
技术标签:
【中文标题】如何同时使用 GPS 和 NETWORK_PROVIDER,并且结果几乎没有错误【英文标题】:How to use both GPS & NETWORK_PROVIDER, and with almost no error in their results 【发布时间】:2016-09-05 14:07:57 【问题描述】:我正在开发一个 android 应用程序,我在其中使用设备的当前位置。我使用LocationManager
的requestLocationUpdates("gps", 5000, 0, new LocationDetector());
方法来获取更新。在LocationListener
的onLocationChanged()
方法中,我正在使用我设备的当前位置。现在:
问题#1:我记录了"gps"
和NETWORK_PROVIDER
检测到的当前位置有一些错误(错误意味着我的设备的位置与“gps”或“network_provider”)。所以我想知道"gps"
和NETWORK_PROVIDER
的结果中可能存在的最大错误是多少?有什么方法可以从"gps"
和NETWORK_PROVIDER
得到准确的结果?
问题#2:在我的设备中,"gps"
在封闭区域(如房间)内不起作用,所以我想使用"gps"
和NETWORK_PROVIDER
来获取位置的更新。这样当我的设备的"gps"
不工作时,我应该通过NETWORK_PROVIDER
自动获取更新。那么请告诉我该怎么做?
【问题讨论】:
【参考方案1】:问题 1
每个提供商都有优点和缺点,gps 可以提供更准确的结果和更多的电力使用。网络提供商提供的结果准确度较低,但功耗较低。您可以结合 gps 和网络提供商,但已经有一个提供商可以为您提供所有内容:fused location provider
问题 2
是的,您可以在 gps 提供程序上实现一个简单的超时机制。因此,当超时时,启动网络提供商的位置请求。
但我建议看这个video。所以这是很好的解释 你的第二个问题。
【讨论】:
以上是关于如何同时使用 GPS 和 NETWORK_PROVIDER,并且结果几乎没有错误的主要内容,如果未能解决你的问题,请参考以下文章
如何同时计算来自 CLLocationManager 的所有 gps 数据