我在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米,但实际上它可能约500米。在原生Android应用程序谷歌地图中,我看到我的位置足够准确。
我怀疑Google使用其他API。是否存在另一种在Android中获取位置的方法?
答案 0 :(得分:2)
Google应用使用名为"融合位置提供商的专有提供商" (read more here)。该提供商仍然使用后台存在的网络和GPS提供商。
来自网络提供商的第一个位置修复大部分时间的准确度大于1000米,因为它来自BTC(手机信号塔)。几秒钟后,它应该降至基于Wi-Fi的20-50米精度。 GPS提供的位置通常最大精度为20米,但当您居住在人口密集且高层建筑物与GPS卫星连接不良的区域时,这种情况会增加。
我最近发现Smart Location Library应该可以轻松访问GPS,网络或融合提供商以及活动识别,以减少电池消耗。