融合位置提供商和“Wi-Fi和移动网络位置”设置

时间:2014-01-07 18:33:08

标签: android geolocation google-play-services

我正在使用融合位置提供商。我希望此提供商能够访问所有可能的来源以获得最佳准确度。

我的设备(Android 4.3的Moto G)具有“Wi-Fi和移动网络位置”设置: enter image description here

默认情况下,此设置已禁用,如上面的屏幕截图所示。

  1. 此设置的值是否会影响融合位置提供商提供的位置的准确性?

  2. 如果是,那么我该如何确保启用此设置?或者至少知道它被禁用了?

1 个答案:

答案 0 :(得分:2)

  1. 是的,“Wi-Fi和移动网络位置”影响位置的准确性,在某些位置...如果禁用此选项,有时您很难找到因为GPS在地理位置上有些麻烦你在某些地方(例如在一个有很多建筑的城市)。因此,“Wi-Fi和移动网络位置”会有所帮助。

  2. 您无法确保启用此设置,但您可以通过代码了解它。

  3. 查看此代码以检查“网络”位置是否可用:

    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也不会。