如何获取位置服务,以便在用户说“不”时继续提示

时间:2012-07-22 14:49:09

标签: iphone objective-c ios mapkit

  

可能重复:
  CLLocation ask again for permission
  How to prompt user to turn on Location Services…again

我希望“使用您当前的位置”提醒,以便在用户说“不”时继续提示。

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

感谢您的帮助

2 个答案:

答案 0 :(得分:8)

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

编辑:您可以使用

检查位置服务是否已启用
[CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized

答案 1 :(得分:4)

每当您尝试调用- (void)locationManager:didFailWithError:(NSError *)error等方法时,Corelocationmanager都会触发startUpdatingLocation。因此,您可以使用以下代码检查用户是否拒绝了位置监控。

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

您可以通过重置位置警告再次启用Corelocation警报。转到设置>一般>重置>重置位置警告。您还可以添加alertview,要求用户指向设置应用程序并在那里重置位置警告。在Alert视图委托中使用以下代码打开Settings Application。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];