【问题标题】:Fused location provider and the "Wi-Fi & mobile network location" setting融合位置提供程序和“Wi-Fi 和移动网络位置”设置
【发布时间】:2014-01-07 18:33:08
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: android geolocation google-play-services


    【解决方案1】:
    1. 是的,“Wi-Fi 和移动网络位置”会影响位置的准确性,在某些位置...如果禁用此功能,有时您可能难以定位,因为 GPS 无法定位您在某些地方(例如在有很多建筑物的城市中)。因此,“Wi-Fi 和移动网络位置”会有所帮助。

    2. 您无法确保此设置已启用,但您可以通过代码知道。

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

    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)?
    猜你喜欢
    • 2013-08-02
    • 1970-01-01
    • 2011-05-14
    • 2015-12-22
    • 1970-01-01
    • 2013-09-01
    • 2017-07-01
    • 1970-01-01
    • 2014-11-29
    相关资源
    最近更新 更多