2013-03-26 112 views
4

在我的應用程序,如果用戶不能訪問自己的當前位置,我可以按以下方法如何第二次詢問用戶允許訪問當前位置的權限?

- (void)locationManager:(CLLocationManager*)aManager didFailWithError:(NSError*)anError 
{ 
    switch([anError code]) 
    { 
     case kCLErrorLocationUnknown: 
     break; 

     case kCLErrorDenied: 
     { 
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Access Denied" message:@"You didn't allow to access your current location" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
      [alert show]; 
      break; 
     } 
    } 
} 

收到該消息怎樣尋求第二次用戶權限?

我搜索並得到了答案NO,如果用戶希望應用程序訪問他/她的位置,他/她如何設置應用程序以使用其當前位置?

正在刪除應用程序並下載另一個唯一的解決方案?

+0

大家都對我的回答downvote ...只是檢查這個你會得到我想要的東西:

在IOS 7

說... http:// stackoverflow。COM /問題/ 14984168 /如何對解決-A-核心位置的邏輯功能於IOS-應用程序/ 14984754#14984754 – Rajneesh071 2013-03-26 07:44:59

回答

2

我想你可以從設備設置中開啓定位服務 - >位置服務選項卡。請參見下面

圖像0​​

更新: 當位置服務是關閉一個應用程序時,位置管理器將觸發錯誤,錯誤代碼爲kCLErrorDenied然後您可以向用戶顯示警報以打開位置服務的設置..

或者,您可以使用foll代碼太

if (![CLLocationManager locationServicesEnabled]) 
+0

PLS,elobarate烏爾答案 – NAZIK 2013-03-26 07:03:48

+0

編輯答案 – iphonic 2013-03-26 07:08:28

+2

這必須由用戶來完成。我認爲NAZIK詢問開發者是否可以要求用戶允許訪問位置服務。 – Yogi 2013-03-26 07:09:45

3

我想是的。刪除應用程序並下載另一個是唯一的解決方案,因爲該警報消息要求用戶訪問位置設置的權限不會被應用程序觸發,而是被iPhone操作系統觸發,因此我認爲您不能以編程方式提問。

0

您可以在設備上手動重置位置設置 - >隱私 - >位置,然後重新啓動您的應用程序。

5

這只是我還是什麼?有幾個這樣的問題。其中每一個都由用戶應該做什麼來回答,以便重新啓用位置服務,而不是爲了獲得那個珍貴的一致警報而應該做的事。

呼叫

[singleton.locationManager startUpdatingLocation]; 

這實際上是什麼彈出警報。

如果你不叫它,那麼警報不會顯示出來。

如果您先檢查它是否已啓用,然後僅在已啓用時才調用它,則不顯示警報。

我花了數週的時間來搞清楚這一點。在互聯網上對此沒有任何信息。

+0

+1,提示.... – NAZIK 2013-04-22 05:20:01

0

這需要由用戶完成。 設置>通用> Restriction->如果不可─打開>在隱私-Location服務

相關問題