我有一个具有明确用户交互的应用程序,该用户可以使用用户的当前位置。如果用户拒绝访问位置服务,我仍然希望随后的使用能够提示用户转到设置并为我的应用重新启用位置服务。如何在用户拒绝使用后提示用户打开位置服务
我想要的行为是内置的地图应用:
- 在设置复位位置警告>通用>还原>还原位置警告。
- 启动地图应用程序。
- 点击左下角的当前位置按钮。
- 带“”地图“的地图提示将使用您当前的位置”| “不允许”| “允许”。
- 选择“不允许”选项。
- 再次点击左下角的当前位置按钮。
- 将地图提示与“打开位置服务以允许”地图“确定您的位置”| “设置”| “取消”。
在自己的应用程序,同样的基本流程的结果在我的CLLocationManagerDelegate -locationManager:didFailWithError:方法被调用了kCLErrorDenied错误,在最后步骤,并且用户没有给出,打开设置应用程序来纠正选项它。
我可以显示自己的警报来响应错误,但它不能启动设置应用程序,就像操作系统可以提供内置地图应用程序所使用的警报一样。
CLLocationManager类中有什么我缺少能够给我这种行为吗?
现在,我只是显示一个警告用户,要求他们去设置以重新启用它。我也很想听到更好的解决方案。 – donkim 2011-02-03 23:22:13
我也想回答这个问题,当然还有更好的方法 – conorgriffin 2011-02-21 19:46:58
我发现CoreLocation并不满足这个原因。我最终使用了容易整合和有据可查的skyhook库。坐标似乎也更精确。唯一的缺点是必须将1.5MB dylib与应用程序捆绑在一起。 – 2011-03-17 13:32:50