簡體   English   中英

更改位置服務的通知?

[英]Notifications for changes to Location Services?

我一直在嘗試使用CLLocationManager來構建我正在構建的應用程序。 我了解如何檢查位置服務是否已啟用以及用戶是否允許我的應用使用其當前位置。

如果用戶允許我的應用最初使用他們的位置,然后用戶:

  1. 明確地關閉位置服務
  2. 將手機置於飛機模式
  3. 明確取消授權我的應用程序使用其位置

是否發布了任何通知,我可以訂閱並在重新打開我的應用時自動回復?

如果沒有,那么處理這種情況的最佳方法(我可以更新顯示GPS坐標的視圖)是否可以手動將此檢查放入我的AppDelegate的applicationDidFinishLaunching和applicationWillEnterForeground方法中?

我認為應該去那里的原因是因為當您重新啟動應用時,第一個視圖不會觸發viewWillAppear,如果該視圖需要從顯示GPS坐標變為友好消息,要求他們重新啟用位置服務, AppDelegates是我能想到的最好的鈎子。

謝謝!

在iOS 4.2及更高版本中,您將獲得一個委托調用

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status;

你的方法很健全。 如果在重新打開應用程序或網絡訪問權限已更改時發現Core Location不可用,則可以向需要相應更新的viewControllers發送通知。 查看NSNotificationCenter

即使您采用上述內容,我建議您每次都在viewDidAppear中進行這些檢查,因為網絡訪問可能隨時丟失。 在線測試中,您可以進行任何位置檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM