判斷相機權限:ios
NSString *mediaType = AVMediaTypeVideo; AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType]; if(authStatus == AVAuthorizationStatusRestricted || authStatus == AVAuthorizationStatusDenied){ //相機權限受限制 }
typedef NS_ENUM(NSInteger, AVAuthorizationStatus) { AVAuthorizationStatusNotDetermined = 0, 請問是否受權訪問 AVAuthorizationStatusRestricted, 權限都限制 AVAuthorizationStatusDenied, 拒絕訪問 AVAuthorizationStatusAuthorized 受權訪問 } NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
判斷相冊權限:ide
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0){ PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus]; if (status == PHAuthorizationStatusDenied || status == PHAuthorizationStatusRestricted) { //相冊權限受限制 } } else{ ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus]; if (status == ALAuthorizationStatusDenied || status == ALAuthorizationStatusRestricted) { //相冊權限受限制 } }
ALAuthorizationStatus 在iOS9以後廢棄了,PHAuthorizationStatus 是ios8新增的替代 ALAuthorizationStatus 的方法。
typedef NS_ENUM(NSInteger, PHAuthorizationStatus) { PHAuthorizationStatusNotDetermined = 0, PHAuthorizationStatusRestricted, PHAuthorizationStatusDenied, PHAuthorizationStatusAuthorized } NS_AVAILABLE_IOS(8_0);
typedef NS_ENUM(NSInteger, ALAuthorizationStatus) { ALAuthorizationStatusNotDetermined ALAuthorizationStatusRestricted ALAuthorizationStatusDenied ALAuthorizationStatusAuthorized } NS_DEPRECATED_IOS(6_0, 9_0, "Use PHAuthorizationStatus in the Photos framework instead");