如何第二次请求用户许可以允许访问当前位置?

在我的应用程序中,如果用户不允许访问其当前位置,我可以通过以下方法接收该消息

- (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; } } } 

如何第二次询问用户权限?

我搜索并得到答案否,如果用户希望应用程序访问他/她的位置,他/她如何设置应用程序以使用他们当前的位置?

是删除应用程序并下载另一个唯一的解决方案?

我认为您可以从设备设置 – >位置服务选项卡打开位置服务..请参见下图

在此处输入图像描述

更新:当应用程序的位置服务关闭时,位置管理器将触发错误,错误代码为kCLErrorDenied,然后您可以向用户显示警报以启用设置中的位置服务。

或者,您也可以使用以下代码

 if (![CLLocationManager locationServicesEnabled]) 

这只是我还是什么? 有几个这样的问题。 每个用户都应该通过什么来重新启用位置服务来回答,而不是程序员应该做什么来获得宝贵的一致警报。

呼叫

 [singleton.locationManager startUpdatingLocation]; 

这实际上是警报的爆发。

如果您不打电话,则警报不会显示。

如果您首先检查它是否已启用,然后仅在启用时才调用它,则警报不会显示。

我花了几周时间搞清楚这一点。 在互联网上没有关于此的任何信息。

我想是的。 删除应用程序并下载另一个应用程序是唯一的解决方案,因为该应用程序但iPhone操作系统不会激活要求用户访问位置设置的警报消息,因此我认为您不能以编程方式询问它。

这需要由用户完成。

在ios 7中:设置 – >常规 – >限制 – >如果不是则打开 – >在隐私 – 位置服务下

您可以在设备设置 – >隐私 – >位置中手动重置位置,然后重新启动应用程序。