2013-10-30 32 views
0

是否可以在iPhone應用內撤銷位置服務? 我想將[CLLocationManager authorizationStatus]kCLAuthorizationStatusAuthorized更改爲kCLAuthorizationStatusDeniedkCLAuthorizationStatusRestricted,就像我們可以使用通知狀態一樣,調用:[[UIApplication sharedApplication] unregisterForRemoteNotifications]如何撤銷/取消/取消註冊iOS應用內的「位置服務」

回答

1

+[CLLocationManager authorizationStatus]是一種只讀方法。這是用戶設置的內容,這超出了您的應用程序的控制範圍。

如果你完成了,你應該做的就是停止CLLocationManager的更新。創建一個屬性或伊娃的位置管理,那麼當你不再需要更新,只要致電:

[myLocationManager stopUpdatingLocation];

你也可以開始像這樣的位置更新前檢查授權狀態:

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined || [CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized) { 
    // start updating location 
} 
+0

呀,我做了這樣的事情。非常可悲的是,我不能只註銷位置服務的應用程序,就像推送通知一樣。我必須自己處理用戶偏好。無論如何,感謝您的時間來回答我的問題。 – Fabio

+0

我真的不明白這種方法的必要性。在告訴'CLLocationManager'開始更新之前,您應該檢查授權狀態。查看我的示例代碼的更新答案。 – squarefrog

+0

使用取消註冊方法,我可以將authorizationStatus更改爲NotDetermined或Restricted,並在稍後開始startUpdatingLocation之前檢查它。由於我無法做到這一點,我必須將用戶信息存儲在應用程序變量中。好吧,這非常簡單,而且我已經做到了,但是由於我可以保留推送通知的用戶首選項(註冊/取消註冊),所以我認爲我可以對位置進行相同操作。感謝您的評論。 – Fabio