我正在尝试使用CLLocationManage
获取设备当前位置。我设置我的方法来获取按钮点击的位置。我可以成功获取位置但是当我收到带有“ APPNAME想要使用您当前位置的消息”的alertview时,有两个按钮,“不允许”和“确定”。然后我点击“不允许”。然后,每当我点击按钮,我不能再获得该alertview以获取当前位置,所以我无法获得该位置。因此,每当我点击我的按钮获取位置时,是否可以获得alertview?
答案 0 :(得分:3)
当您在提醒时点击“不允许”按钮时,您的应用程序的位置权限将受到限制。
您可以导航至手机中的设置>隐私>位置服务,在那里你可以看到服务是关闭你的应用程序。您可以将其打开以授予权限
答案 1 :(得分:1)
添加此答案,以便您可以更有效地处理该方案。
无法再次强制使用当前位置权限对话框,但您可以执行的操作是陷阱
用户使用CLLocationManagerDelegate
,
- (void)locationManager:(CLLocationManager*)aManager didFailWithError:(NSError*)error
{
switch([error code])
{
case kCLErrorDenied: // Location access denied
NSLog(@"Sorry, this app needs to access your current location... ");
UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"" message:@"Sorry, this
app needs to access your current location. You can navigate to settings in your
phone > privacy >location services, over there you can see services are off for you
application. You can turn it on to give permissions"
delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil];
//show the alert view
[myAlert show];
break;
case kCLErrorNetwork: // received n/w error
NSLog(@"Network error occurred");
}
}
答案 2 :(得分:1)
为用户选择的答案是正确的。
但是,如果您是程序员,并且希望用户收到警报通知,则应致电
[singleton.locationManager startUpdatingLocation];
每当我按照您的意愿禁用位置服务时,这将自动弹出警报。
常见的错误是检查位置更新是否已启用,如果不是,则不要打扰调用startUpdatingLocation。
如果是这种情况,则警报不会显示。