如何在iOS中确定位置源

ren*_*ana 1 iphone location objective-c ios google-maps-sdk-ios

我正在获取当前位置,在我的应用程序中,我想知道我的位置来自 GPS、WIFI 或蜂窝数据。我如何检查? 有没有办法确定位置源?

苹果 iOS 使用

辅助全球定位系统 (A-GPS)

众包 Wi-Fi

蜂窝网络搜索

确定您的位置:

这三个阶段按优先级的降序使用。换句话说,iOS 首先尝试使用 GPS 卫星链接来修复您的位置。如果无法获取卫星,iOS 会故障切换到 Wi-Fi。如果您未连接到 Wi-Fi 局域网 (WLAN),则 iOS 会使用基站数据

Avi*_*Avi 5

作为 A-GPS 的一部分,Apple 同时使用所有非 GPS 系统和 GPS。说它正在回落并不是一个准确的描述。相反,在尝试获取 GPS 锁定时,它会使用其他系统来粗略了解您的位置。只有在无法获得 GPS 锁定的情况下,手机才会简单地报告从其他来源获得的信息。

CoreLocation 不提供其来源(或来源),但您可以使用一些启发式方法来猜测。

  1. 检查位置更新报告的准确性。大范围(例如 500+ 米)将表明它不是 GPS 定位。
  2. 检查哪些收音机可用。如果设备中没有蜂窝无线电,则必须通过 Wifi 进行修复。
  3. 检查蜂窝无线电是否处于活动状态。该设备不需要与可用提供商的服务来使用塔进行修复。不要过滤那个。

这些是我最好的猜测。如果您真的想要此功能,则必须进行试验。