可能重复:
CLLocation ask again for permission
How to prompt user to turn on Location Services…again
我希望“使用您当前的位置”提醒,以便在用户说“不”时继续提示。
目前在我正在开发的应用程序中,如果用户说“不”,则提示永远不再显示。我想知道如果他们返回视图控制器如何保持提示/警报活着。
感谢您的帮助
答案 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://"]];