2012-02-02 68 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檢查位置是否正在更新。

或者我想。

相關問題