可可 - 如果设备有GPS,有没有办法检查代码?

时间:2012-02-02 16:47:29

标签: ios cocoa-touch

我想检查设备是否有GPS。

有办法吗?

2 个答案:

答案 0 :(得分:2)

使用CLLocationManager,您可以查看位置是否已启用。

+ (BOOL) [CLLocationManager locationServicesEnabled];

然而,无法确定这是否会导致单元格,gps或wifi确定位置。

答案 1 :(得分:0)

当您在没有单元格且没有gps的设备上时存在问题。如果关闭wifi,则即使设备无法获取位置更新,locationServicesEnabled仍会返回YES。这就是为什么我们需要检查gps和/或单元格 - 假设它们总是成对出现。不幸的是,没有好办法检查gps / cell。

奇怪的是,locationManager:didUpdateToLocation:fromLocation:在这种情况下仍然被调用,但是locationManager.location被设置为nil。

因此,要查看locationServices是否可用,请执行以下操作:

if ([CLLocationManager locationServicesEnabled] && [CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized && locationManager.location) {

}

locationServicesEnabled检查设备是否启用了位置服务,authorizationStatus检查是否为您的应用授权了服务,并且locationManager.location检查位置是否正在更新。

或者我认为。