在设置中禁用了摄像头选项,但将PHAuthorizationStatus作为PHAuthorizationStatusAuthorized

时间:2017-03-24 12:27:17

标签: ios camera ios-camera

//检查授权

PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];

if (status == PHAuthorizationStatusAuthorized) {
    // Access has been granted.

}
else if (status == PHAuthorizationStatusDenied) {
    // Access has been denied.

}
else if (status == PHAuthorizationStatusNotDetermined) {
    // Access has not been determined.
    [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
        if (status == PHAuthorizationStatusAuthorized) {
            // Access has been granted.

        }
        else {
            // Access has been denied.

        }
    }];
}
else if (status == PHAuthorizationStatusRestricted) {
    // Restricted access - normally won't happen.

}

我已将Info.plist中的键设置为Camera和Photos仍然得到相同的结果。

1 个答案:

答案 0 :(得分:0)

您应该使用其他方法检查相机授权状态:

NSString *mediaType = AVMediaTypeVideo;
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];
if(authStatus == AVAuthorizationStatusAuthorized) {
  // do your logic
} else if(authStatus == AVAuthorizationStatusDenied){
  // denied
} else if(authStatus == AVAuthorizationStatusRestricted){
  // restricted, normally won't happen
} else if(authStatus == AVAuthorizationStatusNotDetermined){
  // not determined?!
  [AVCaptureDevice requestAccessForMediaType:mediaType completionHandler:^(BOOL granted) {
    if(granted){
      NSLog(@"Granted access to %@", mediaType);
    } else {
      NSLog(@"Not granted access to %@", mediaType);
    }
  }];
} else {
  // impossible, unknown authorization status
}

Link to related question