如何检测系统范围的位置服务更改

时间:2015-03-03 19:28:07

标签: ios ios8 core-location

我正在经历用户可能在手机上关闭定位服务的潜在案例。

现在,我有:

func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
    if status == .Authorized || status == .AuthorizedWhenInUse {
        manager.startUpdatingLocation()
    } else {
        manager.stopUpdatingLocation()
    }
}

我认为只要用户进入设置并亲自更改我的应用程序设置,就会触发此操作。当用户关闭所有应用程序的位置服务时,这是否也会触发?文档似乎没有过去。

1 个答案:

答案 0 :(得分:1)

是。全局转换位置服务也会触发该方法,它实际上意味着kCLAuthorizationStatusDenied将作为当前状态发送。

用户再次启用位置服务后,将再次触发该方法,并将其中一个其他枚举选项作为当前状态发送 - 该值将取决于该特定应用的位置服务设置历史记录。