我怎么知道iOS设备是否有GPS ?



对于iPad或iPod touch,有没有办法知道设备是否有GPS?

额外加分:如果iPad本身没有,但它连接到第三方GPS设备怎么办?我能确定这个吗?

Apple没有提供直接查询设备是否具有GPS功能的功能。你的问题有两种可能的解决方案:

  1. 查询设备类型,根据设备类型判断是否有GPS。

  2. 苹果推荐的方式:请查看他们的文档("确定可用的硬件支持"部分)。基本上你创建一个CLLocationManager的实例并设置所需的精度到最高级别,之后你可以查询它的精度;如果不是很准确,很可能是设备没有GPS。

希望这对你有帮助。:)

对于iOS 6或更高版本,您可能需要尝试

+ (BOOL)[CLLocationManager deferredLocationUpdatesAvailable]

根据文档:

延迟位置更新需要GPS硬件的存在,可能不是所有iOS设备都支持。

只有GPS可以提供位置属性:航向和速度。
作为一般规则,您需要GPS进行精确定位,没有GPS的设备将提供高于30- 40米的location. gethoricontalaccuracy()。(使用CLLLocationAccuracyBest的精度设置)

所以在这种情况下,你没有一个准确的位置,可以忽略它。(如果设备有GPS,则独立)

// Check if the device has GPS hardware available
public bool CheckGpsHardware()
{
    var value = false;
    CLLocationManager locationManager = new CLLocationManager();
    locationManager.DesiredAccuracy = CLLocation.AccuracyBest;
    if (CLLocationManager.LocationServicesEnabled)
    {
        locationManager.RequestLocation();
        if (locationManager.Location?.HorizontalAccuracy < 0)
        {
            // GPS hardware is not available
            value = false;
        }
        else
        {
            // GPS hardware is available
            value = true;
        }
    }
    else
    {
        // Location services are not available
        value = false;
    }
    return value;
}

下载高度表或类似的应用程序。在使用下载的应用程序之前关闭手机数据和wifi。然后启动应用程序,看看它是否会显示您当前的高度。如果它能工作,你有GPS如果不行,你就不用

最新更新