2012-02-02 41 views

回答

2

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

+ (BOOL) [CLLocationManager locationServicesEnabled]; 

但是,没有办法看到这是否导致由单元塔,gps或wifi确定的位置。

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检查服务授权给你app和locationManager.location检查位置是否正在更新。

或者我想。

相关问题