【问题标题】:Android Location Manager安卓位置管理器
【发布时间】:2016-03-16 06:56:57
【问题描述】:

有两个提供者:GPS_PROVIDER 和 NETWORK_PROVIDER 来获取我们在 Android 中的当前位置。 是否可以完全通过WIFI禁用定位服务并获取用户位置? 我试图禁用定位服务,但 NETWORK_PROVIDER 返回 false。

【问题讨论】:

    标签: android google-maps location-services


    【解决方案1】:

    是否可以禁用定位服务并获取用户位置 纯粹靠WIFI?

    是的,可以通过将输入添加到 getLocastKnowsLocation 为LocationManager.NETWORK_PROVIDER

    LocationManager locMgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    Location networkLocation = locMgr.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
    if (networkLocation != null) {
                Location bestResult = networkLocation;
            }
    

    【讨论】:

    • 如果用户关闭了定位服务怎么办?定位服务有两个选项,即 gps 或网络。如果我禁用位置服务意味着两者都将返回 false。但我仍然可以通过 WIFI 连接到互联网。所以在这种情况下,网络提供商会返回 false,但我仍在使用 WIFI。
    【解决方案2】:

    是的,您仍然可以通过 wifi 获取设备的当前位置。 Android 设备可用的位置数据包括设备的当前位置。您可以使用My Location layer 和我的位置按钮为您的用户提供他们在地图上的当前位置。

    移动应用程序的独特功能之一是位置感知。 Google 服务中提供的 Location API 有助于通过自动位置跟踪、地理围栏和活动识别为您的应用添加位置感知。

    这是一个示例演示应用程序,它讨论了如何获取设备的当前位置: https://github.com/googlemaps/android-samples/blob/master/ApiDemos/app/src/main/java/com/example/mapdemo/MyLocationDemoActivity.java

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多