对于iPad或iPod touch,有没有办法知道设备是否有GPS?
额外加分:如果iPad本身没有,但它连接到第三方GPS设备怎么办?我能确定这个吗?
Apple没有提供直接查询设备是否具有GPS功能的功能。你的问题有两种可能的解决方案:
-
查询设备类型,根据设备类型判断是否有GPS。
-
苹果推荐的方式:请查看他们的文档("确定可用的硬件支持"部分)。基本上你创建一个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如果不行,你就不用