Ios 相机选项在设置中被禁用,但将PHAuthorizationStatus获取为PHAuthorizationStatusAuthorized

Ios 相机选项在设置中被禁用,但将PHAuthorizationStatus获取为PHAuthorizationStatusAuthorized,ios,camera,ios-camera,Ios,Camera,Ios Camera,//检查授权 PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus]; if (status == PHAuthorizationStatusAuthorized) { // Access has been granted. } else if (status == PHAuthorizationStatusDenied) { // Access has been denied. } else

//检查授权

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中为相机和照片设置了键,但仍然得到相同的结果。

您应该使用另一种方法检查相机授权状态:

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
}