使用Swift切换CoreLocation

时间:2015-01-11 20:34:46

标签: ios swift mapkit cllocationmanager

当我在我的swift应用程序中按下按钮时,我试图打开和关闭CoreLocation。当应用加载时,这是我打开它的方式

let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization()

if CLLocationManager.locationServicesEnabled() {
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.startUpdatingLocation()
}

这很有效。它会提示用户,然后在地图上更新我的位置。但是,如果你选择"不"当它请求时,我希望能够再次打开它。我认为这就像再次请求授权一样简单,但它不起作用。我有一个方法,当按下按钮打开位置时会调用该方法。

此方法的代码基本上完全相同。一旦最初设置了授权状态,我还需要做些什么吗?

1 个答案:

答案 0 :(得分:1)

  

如果您在请求时选择“否”,我希望能够再次将其重新打开

一旦用户选择拒绝您的授权,您就无法与用户神奇地发生冲突,并且(唉)您无法再次出现系统的授权对话框。

您可以做的最好的事情就是您自己的对话框(即提醒)请求用户转到“设置”并翻转开关以授予您权限。您甚至可以用户带到设置(iOS 8中的新功能)。但是你无法再次获得该系统授权对话框。