2013-03-26 117 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服务

相关问题