检查接受 NSLocationWhenInUseUsageDescription

Check acceptance of NSLocationWhenInUseUsageDescription

我正在为 iOS 开发处理信标和位置管理的应用程序。 在 iOS 8 中,应用程序必须在 plist 文件中包含 "NSLocationWhenInUseUsageDescription" 密钥,该密钥将在应用程序启动时显示在应用程序中,以获取用户启用位置跟踪的权限。 如何检测用户是否接受?我想就此做出决定。

谢谢。

您可以通过在 class 设置中实现以下方法作为您的 CLLocationManager 委托(实现 CLLocationManagerDelegate 协议)来检测这一点

Swift 中的示例:

// MARK: CLLocationManagerDelegate

func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
    // check status to see if we’re authorized
    let authorized = (status == CLAuthorizationStatus.AuthorizedWhenInUse)
    // handle acceptance... 
}

Objective C 示例:

-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {

    BOOL isAuthorized = status == kCLAuthorizationStatusAuthorizedWhenInUse;
    // handle acceptance..        
}