对于iPad或iPod Touch设备,有没有一种方法可以找出设备是否具有GPS功能?
额外奖励分:如果iPad本身没有,但它连接了第三方GPS设备,我能确定这一点吗?
对于iPad或iPod Touch设备,有没有一种方法可以找出设备是否具有GPS功能?
额外奖励分:如果iPad本身没有,但它连接了第三方GPS设备,我能确定这一点吗?
苹果没有提供直接查询设备是否具有GPS功能的功能。 您可以通过以下两种方法解决问题:
查询设备类型并根据此确定其是否具有GPS。 可以在这里找到详细描述。
苹果推荐的方法:查看他们的文档(“确定可用硬件支持”部分)。 基本上,您需要创建一个CLLocationManager实例,并将所需精度设置为最高级别,然后可以查询其精度; 如果它不是非常准确,则很可能该设备没有GPS。
希望这可以帮到您。 :)
对于 iOS 6 或更高版本,您可能想尝试
+ (BOOL)[CLLocationManager deferredLocationUpdatesAvailable]
延迟位置更新需要GPS硬件支持,可能不适用于所有的iOS设备。
只有GPS可以提供位置属性:航向和速度。
而且通常情况下,你需要GPS才能获得精确的位置,没有GPS的设备将会提供一个getHoricontalAccuracy()高于30-40米的位置。(使用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;
}