我在使用以下代码配置的 LocationListener 中获取位置:
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 5.0, locationListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 5.0, locationListener);
我得到的位置经常是不准确的。 “gps”提供商的位置精度约为 10-20 m,但实际上可能约为 500 m。在 native Android 应用程序 Google map 中,我看到我的位置足够准确。
我怀疑 Google 使用了其他 API。在 Android 中是否有另一种获取位置的方法?
- 操作系统:Android 4.4
- 智能手机型号:Doogee Voyager 2 DG310
最佳答案
Google 应用程序使用名为“Fused Location Provider”(read more here) 的专有提供程序。该提供商仍然使用后台存在的网络和 GPS 提供商。
大多数情况下,网络提供商的第一个定位精度会超过 1000 米,因为它来自 BTC(手机信号塔)。几秒钟后,基于 Wi-Fi 的准确度应降至 20-50 米左右。 GPS 提供的位置通常最大精度为 20 米,但当您位于人口稠密的地区且建筑物高大且与 GPS 卫星的连接不良时,精度可能会增加。
我最近发现了 Smart Location Library它应该提供对 GPS、网络或融合供应商的轻松访问,并结合 Activity 识别以减少电池消耗。
关于Android gps 位置的真实精度很差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27345334/