我有一个具有显式用户交互的应用程序,它利用用户的当前位置.如果用户拒绝访问定位服务,我仍希望后续使用提示用户转到设置并重新启用我的应用程序的定位服务.
我想要的是内置 map 应用程序的行为:
- Reset location warnings in Settings > General > Reset > Reset Location Warnings.
- 启动 map 应用程序.
- 点击左下角的当前位置按钮.
- 带有" map "的 map 提示想要使用您的当前位置"|"不允许"|"允许".
- Select "不允许"选项.
- 再次点击左下角的当前位置按钮.
- " map "提示"打开位置服务以允许" map "确定您的位置"|"设置"|"取消".
在我自己的应用程序中,同样的基本流程导致我的CLLocationManagerDelegate-locationManager:didFailWithError:方法在最后一步调用时出现kCLErrorDenayed错误,并且用户没有打开Settings应用程序来更正它的选项.
我可以显示我自己的alert 来响应错误,但它不能启动设置应用程序,而不能像内置 map 应用程序那样启动操作系统可以提供的alert .
在CLLocationManager类中,是否有我缺少的东西能够让我产生这种行为?