在 Android 中,每当您获取位置对象时,您都可以在实例上调用“location.getProvider ”来获取“wifi”之类的值。iOS(CLLocation)中有类似的东西吗?
2 回答
位置感知编程指南说:
[CoreLocation] 框架使用从内置蜂窝、Wi-Fi 或 GPS 硬件获得的信息来对设备的位置进行三角测量。它将该位置报告给您的代码,并且根据您配置服务的方式,还提供定期更新,因为它接收到新的或改进的数据
话虽如此,您无法访问CLLocationManager
确定您的位置的精确程度(除非您使用了重大更改,它可能使用了手机信号塔)。理论上,您可以使用Reachability来查看您是否有 Wi-Fi 可用性,但您无法保证它用于获取您的位置的 GPS、蜂窝和 Wi-Fi 组合(即使您碰巧有 WiFi 连接)。
您所拥有的是horizontalAccuracy
,它可以告诉您您收到的位置的准确程度。从用户的角度来看,这可能是一条更重要的信息。
没有关于哪个系统在 iOS 上为您提供位置的概念。您可以做的是检查位置的准确性。根据位置的精确程度,您可能可以推测该位置是否由 GPS 信号提供。
没有给出的原因是 iOS 会为您提供一个不会非常准确的初始位置(可能基于地理 IP 或小区三角测量),然后如果 GPS 可用,则使用越来越精确的坐标更新位置.
如果您的应用程序需要GPS 芯片提供的精度,您可以添加UIRequiredDeviceCapabilities = gps
到 Info.plist。