2010-02-18 69 views
13

在iPhone上使用位置感知會觸發「X想使用當前位置」 - 「不允許」/「確定」。在CLLocationManager文檔中,聲明:iPhone上的「X想要使用當前位置」背後的規則是什麼?

「用戶可以選擇拒絕應用程序訪問位置服務數據。在應用程序初次使用期間,核心位置框架會提示用戶確認使用位置服務是可以接受的,如果用戶拒絕請求,CLLocationManager對象會在將來的請求中向其委託報告一個適當的錯誤。「

如果您點擊「確定」以允許位置服務,我發現「初始使用」是兩次。從第三次開始,iPhone將會記住您對該應用程序未來所有應用的設置。

但是,每當應用程序的一部分嘗試使用位置服務時,按下「不允許」的用戶將不斷受到打擾。我已經在自己的應用中嘗試了至少15次,並且在「2010年溫哥華 - 官方移動觀衆指南」中發佈了更多「不允許」的內容。這對於不想使用此功能的用戶來說非常煩人。

我的問題:

  • 對於所有的應用程序,iPhone會問兩次,記得設置,如果你點擊「OK」。這是一個正確的觀察?
  • 是否有限制嘗試的數量iPhone會繼續詢問如果你點擊「不允許」,或者這是永遠不會被記住的?你如何處理這個問題?由於locationManager:didFailWithError:被通知,我想它可以每次增加一個計數器屬性並堅持這一點。下一次使用該應用程序時,會在我自己的代碼中檢查此設置。如果counter> = 2,請勿使用核心位置。
  • 我發現刪除「OK」設置的唯一方法就是通過在General - > Reset - > Location警告中重置所有應用程序。有沒有辦法做到這一點只適用於一個應用程序,或從我自己的代碼?
+0

我其實認爲這是很好的行爲。如果用戶持續使用您的應用程序,但不使用定位服務,那麼即使在那裏定位服務也有多重要? – bpapa 2010-02-24 16:29:23

+0

我已經創建了Map應用程序,並打算在App市場推出。我的問題是...我們是否必須通過編碼設置上述OK/Dont允許警報?如果是,那麼重定向我的例子的鏈接。提前致謝。 – 2012-01-16 14:15:02

回答

5
  1. 是的,它會一直問你兩次。有點怪異和不直觀的imho。這是我的理解,這是在你第一次碰到錯誤按鈕的情況下。之後,它假定你知道你想要什麼。

  2. 我發現在LocateMe比如下面:

    "Don't Allow" on two successive app launches is the same as saying "never allow". but I've also read that other folks are seeing the same behavior that you are. Maybe a change in recent OS update? Anyways, your approach sounds reasonable.

  3. 我不相信你可以重置只爲一個應用程序,對不起。

1

現在,您可以在常規定位服務下的設置中爲一個應用程序設置或取消設置。可能在4.0中引入?

而且,如果您是註冊開發者,則可以檢查API差異以獲取最新的測試版。他們可能會改進錯誤處理。

相關問題