如何同时使用 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 应用程序,我在其中使用设备的当前位置。我使用LocationManagerrequestLocationUpdates("gps", 5000, 0, new LocationDetector()); 方法来获取更新。在LocationListeneronLocationChanged() 方法中,我正在使用我设备的当前位置。现在:

问题#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 数据

在 Android 中同时使用 GPS 和 Network Provider

gps 使用网络提供商和 gps 提供商?

gps如何测量面积实例

gps定位器可以同时安装在两个手机

使用gps从纬度和经度获取当前位置