在设置中的“通用”选项里,有一个开关控制位置服务的开启/关闭。在地图应用中,如果用户关闭了位置服务,当用户点击“找到我”的按钮时,会弹出一个警告并要求用户在设置中开启位置服务。然后它退出应用程序并启动设置应用程序。我该如何在我的应用程序中以编程方式实现这个功能?
iOS 5.0及以上版本可以通过“prefs://”URL方案编程方式打开设置应用程序。但在早期版本中会遇到困难。
如果您只是使用[CLLocationManager startUpdatingLocation]的位置服务,如果位置服务被禁用,它将自动弹出您描述的警报。
然而,当用户拒绝在iOS 4中通过在位置设置中禁用您的应用程序,在iOS 3中通过在应用程序的前两次启动时拒绝CoreLocation请求时,没有办法强制显示警报。您只会在-locationManager:didFailWithError:中收到kCLErrorDenied错误。
Maps.app在这种情况下会显示带有设置按钮的警报,但看起来他们正在使用私有API。