我正在使用融合位置提供商。我希望此提供商能够访问所有可能的来源以获得最佳准确度。
我的设备(Android 4.3的Moto G)具有“Wi-Fi和移动网络位置”设置:
默认情况下,此设置已禁用,如上面的屏幕截图所示。
此设置的值是否会影响融合位置提供商提供的位置的准确性?
如果是,那么我该如何确保启用此设置?或者至少知道它被禁用了?
答案 0 :(得分:2)
是的,“Wi-Fi和移动网络位置”影响位置的准确性,在某些位置...如果禁用此选项,有时您很难找到因为GPS在地理位置上有些麻烦你在某些地方(例如在一个有很多建筑的城市)。因此,“Wi-Fi和移动网络位置”会有所帮助。
您无法确保启用此设置,但您可以通过代码了解它。
查看此代码以检查“网络”位置是否可用:
What is the simplest and most robust way to get the user's current location on Android?
编辑:
try {
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
networkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
} catch (Exception ex) {
// catch Exception
}
回答你的意见:
GPS提供商用于保险丝位置提供商。 LocationRequest
的文档说:
“应用程序无法指定LocationClient使用的确切位置源,例如GPS。”它是同一个GPS提供商,但在这种情况下你无法处理。
关于网络提供商,我在LocationClient
文档中找到了这一点(针对addGeofences
方法:
“如果用户禁用了网络位置提供程序,地理围栏服务将停止更新,将删除所有已注册的地理围栏,并通过提供的待处理意图生成意图。”
我的猜测是,如果Geofence服务在用户禁用时无法访问此提供商,则LocationClient
也不会。