如何检测系统范围的定位服务变化
How to detect system wide Location Services changes
我正在处理用户可能会关闭其 phone 上的定位服务的潜在案例。
现在,我有:
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == .Authorized || status == .AuthorizedWhenInUse {
manager.startUpdatingLocation()
} else {
manager.stopUpdatingLocation()
}
}
我假设只要用户进入“设置”并亲自更改我的应用程序设置,就会触发此事件。每当用户关闭所有应用程序的定位服务时,这是否也会触发?文档似乎没有详细介绍它。
是的。在全球范围内启用定位服务也将触发该方法,这实际上意味着 kCLAuthorizationStatusDenied
将作为当前状态发送。
一旦用户再次启用位置服务,该方法将再次被触发,其他枚举选项之一将作为当前状态发送 - 值将取决于该特定应用的位置服务设置历史记录.
我正在处理用户可能会关闭其 phone 上的定位服务的潜在案例。
现在,我有:
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == .Authorized || status == .AuthorizedWhenInUse {
manager.startUpdatingLocation()
} else {
manager.stopUpdatingLocation()
}
}
我假设只要用户进入“设置”并亲自更改我的应用程序设置,就会触发此事件。每当用户关闭所有应用程序的定位服务时,这是否也会触发?文档似乎没有详细介绍它。
是的。在全球范围内启用定位服务也将触发该方法,这实际上意味着 kCLAuthorizationStatusDenied
将作为当前状态发送。
一旦用户再次启用位置服务,该方法将再次被触发,其他枚举选项之一将作为当前状态发送 - 值将取决于该特定应用的位置服务设置历史记录.