2014-12-03 53 views
1

我正在將iOS7背景位置iPhone應用轉換爲iOS8,並設法讓LocationManager使用本網站上的許多建議重新提供座標。iOS8如何更改位置與設置和警報進行交互?

我只requestAlwaysAuthorizationrequestWhenInUseAuthorization感興趣。

但是我永遠不能得到的iOS提示用戶是否允許使用定位服務,我在某些情況下,它應該如果想知道。

有人請回答下列問題:

  1. 如果我的隱私/定位服務/「我的應用程序」設置爲「從不」這是否阻止應用不斷接收GPS座標,除非應用程序明確指示用戶更改該設置? (如果隱私/定位服務/'我的應用程序'設置爲「始終」,我似乎只能接收座標)

  2. iOS是否曾經提示用戶明確授權GPS使用(如之前iOS版本中所做的那樣)?在什麼情況下?如果不是我假設的應用程序有提出一個合適的UIAlert引導用戶響應更改隱私/定位服務/設置didChangeAuthorizationStatus返回的狀態:kCLAuthorizationStatusNotDetermined

  3. UIApplicationOpenSettingsURLString可用於用戶發送到這個應用程序的設置頁面。但是,如果當前設置阻止返回座標,則不會顯示用戶需要更改的隱私/定位服務/'我的應用'頁面。有沒有不同的方式編程方式直接引導用戶到這個應用程序的隱私/定位服務/'我的應用程序'頁面?

非常感謝您的幫助

羅伯特

回答

0
  1. 是的,一旦設置爲「從不」,用戶不會受到iOS的提示提供的權限 - 他們給了一個答案它是「否」。您可以在應用中顯示警報,要求他們打開該警報,但如果您頻繁執行此操作,則會變得煩人。

  2. 應用程序第一次調用requestWhenInUseAuthorization/requestAlwaysAuthorization時會顯示警報。如果用戶拒絕提供位置訪問,那麼隱私設置被設置爲「從不」,並且您處於問題1中描述的情況。如果授予了許可,則隱私設置被設置爲「在使用中」或「始終」。每次運行應用程序時,應該撥打requestWhenInUseAuthorization/requestAlwaysAuthorization

  3. 有沒有辦法直接從您的應用程序打開隱私/位置設置畫面。

+0

感謝保羅 - 對我的問題提供了三個信息豐富而簡潔的答案。你把我放在正確的軌道上。我缺少的是被首次安裝應用程序時,我不得不調用兩次requestAlwaysAuthorization - 然後再一次進行初始化,當didChangeAuthorizationStatus返回kCLAuthorizationStatusNotDetermined狀態,然後顯示授權警告。再次感謝......羅伯特 – Robert 2014-12-03 21:04:26