融合位置提供程序和“Wi-Fi 和移动网络位置”设置
Posted
技术标签:
【中文标题】融合位置提供程序和“Wi-Fi 和移动网络位置”设置【英文标题】:Fused location provider and the "Wi-Fi & mobile network location" setting 【发布时间】:2014-01-07 18:33:08 【问题描述】:我正在使用融合位置提供程序。我希望此提供商能够访问所有可能的来源以获得最佳准确性。
我的设备(搭载 android 4.3 的 Moto G)具有“Wi-Fi 和移动网络位置”设置:
默认情况下,此设置是禁用的,如上面的屏幕截图所示。
此设置的值是否会影响融合位置提供者给出的位置的准确性?
如果是这样,那么如何确保启用此设置?或者至少知道它被禁用了?
【问题讨论】:
【参考方案1】:是的,“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
回答你的cmets:
GPS 提供程序用于 Fuse Location Provider。 LocationRequest
的文档说:
“应用程序无法指定 LocationClient 使用的确切位置源,例如 GPS。”它是同一个 GPS 提供商,但在这种情况下不由您处理。
关于网络提供商,我在LocationClient
文档中找到了这一点(对于addGeofences
方法:
“如果网络位置提供程序被用户禁用,地理围栏服务将停止更新,所有注册的地理围栏将被删除,并由提供的待处理意图生成意图。”
我的猜测是,如果 Geofence 服务在用户禁用的情况下无法访问此提供程序,LocationClient
也不会。
【讨论】:
请提供2的例子。 关于你的链接,android.location.LocationManager.GPS_PROVIDER等是否参与了融合的位置提供者(com.google.android.gms.location)?以上是关于融合位置提供程序和“Wi-Fi 和移动网络位置”设置的主要内容,如果未能解决你的问题,请参考以下文章