1

可能重复:
CLLocation 再次请求权限
如何提示用户打开定位服务...再次

如果用户说“不”,我想让“使用您当前的位置”警报继续提示。

目前在我正在开发的应用程序中,如果用户说“不”,则提示将不再显示。我想知道如果它们返回视图控制器,如何保持提示/警报有效。

谢谢你的帮助

4

2 回答 2

8

我很确定它的设计目的是只询问一次(并且有充分的理由)。您可以检查您的应用是否启用了定位服务,并弹出“请启用定位服务...”之类的消息。

编辑:您可以检查是否启用了位置服务

[CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized
于 2012-07-22T14:53:20.803 回答
4

每当- (void)locationManager:didFailWithError:(NSError *)error您尝试调用诸如startUpdatingLocation. 因此,您可以使用以下代码检查用户是否拒绝了位置监控。

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
      if([error code] == kCLErrorDenied){
        //Alert view
      }
}

您可以通过重置位置警告再次启用核心位置警报。转到设置>常规>重置>重置位置警告。您还可以添加警报视图,要求用户定向到设置应用程序并在那里重置位置警告。在警报视图委托中使用以下代码打开设置应用程序。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
于 2012-07-22T15:02:44.347 回答