我正在处理用户可能会关闭其手机上的定位服务的潜在案例。
现在,我有:
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == .Authorized || status == .AuthorizedWhenInUse {
manager.startUpdatingLocation()
} else {
manager.stopUpdatingLocation()
}
}
我假设只要用户进入“设置”并亲自更改我的应用程序设置,就会触发此操作。每当用户关闭所有应用程序的定位服务时,这是否也会触发?文档似乎没有讨论它。
最佳答案
是的。在全局范围内启用定位服务也将触发该方法,这实际上意味着 kCLAuthorizationStatusDenied
将作为当前状态发送。
一旦用户再次启用位置服务,该方法将再次被触发,其他枚举选项之一将作为当前状态发送 - 值将取决于该特定应用程序的位置服务设置历史记录。
关于ios - 如何检测系统范围的定位服务变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28840277/