【问题标题】:How does LocationManager.NETWORK_PROVIDER really work?LocationManager.NETWORK_PROVIDER 是如何工作的?
【发布时间】:2017-07-24 15:36:32
【问题描述】:

我看到LocationManager.NETWORK_PROVIDER.getLastKnownLocation() 返回了最后一个位置,但是位置是如何更新的?如果 GPS 被禁用,它会完全依赖 WiFi 检测到的 BSSID 吗?如果 WiFi 也被禁用了怎么办?是否将移动服务塔数据考虑在内?

【问题讨论】:

    标签: android geolocation gps android-gps


    【解决方案1】:

    是的,定位服务基本上分为三个层次:GPS、WiFi、手机信号塔。

    GPS 与GPS_PROVIDER 一起使用,WiFi 和手机信号塔都进入NETWORK_PROVIDER 存储桶。

    引用NETWORK_PROVIDER description

    该提供商根据手机信号塔WiFi接入点的可用性确定位置。通过网络查找检索结果。

    【讨论】:

    • 它在内部实际上是如何工作的?它是否会为每个 getLastKnownLocation() 调用向 Google(Map API?)发出请求?如果是 Map 的 API,每次调用是否收费?
    • getLastKnownLocation() 不做任何请求,因为位置是已知的。但是,如果您想获得一个最新的位置,它会将 WiFi MAC 地址或mobile cell ID 发送给 Google 以解析其位置。
    • 我明白了。在这种情况下,是否需要先调用requestLocationUpdates(),然后调用getLastKnownLocation()
    • 好吧,如果你使用requestLocationUpdates(),无论如何你都会从LocationListener获得一个新的位置,所以之后不需要直接使用getLastKnownLocation()(它只会再次返回相同的位置)。
    猜你喜欢
    • 2011-12-02
    • 2019-01-04
    • 2012-04-26
    • 2016-03-22
    • 2021-03-04
    • 2016-11-13
    • 2017-10-11
    • 2021-10-13
    • 2011-02-24
    相关资源
    最近更新 更多