相机-相册权限

相册访问权限

NSPhotoLibraryUsageDescription -> 相册
NSCameraUsageDescription -> 相机

有两种方式知道相册的访问权限

  • ALAuthorizationStatus
  • PHAuthorizationStatus

ALAuthorizationStatus

头文件

#import 
ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
if (status == ALAuthorizationStatusRestricted || status == ALAuthorizationStatusDenied) { // 无权限  
}
typedef NS_ENUM(NSInteger, ALAuthorizationStatus) {
 ALAuthorizationStatusNotDetermined  // 用户还没有关于这个应用程序做出了选择
 ALAuthorizationStatusRestricted // 这个应用程序未被授权访问图片数据。用户不能更改该应用程序的状态,可能是由于活动的限制,如家长控制到位。
 ALAuthorizationStatusDenied  // 用户已经明确否认了这个应用程序访问图片数据
 ALAuthorizationStatusAuthorized // 用户授权此应用程序访问图片数据
} 

PHAuthorizationStatus

在8.0系统以后,新加入了Photos.framework框架,我们可以利用框架中的PHAuthorizationStatus进行权限状态判断。
头文件

#import 
PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (status == PHAuthorizationStatusRestricted || status == PHAuthorizationStatusDenied) {   // 无权限 
}
typedef NS_ENUM(NSInteger, PHAuthorizationStatus) {
    PHAuthorizationStatusNotDetermined = 0, 
    PHAuthorizationStatusRestricted,   
    PHAuthorizationStatusDenied,           
    PHAuthorizationStatusAuthorized         
} 

相机权限

头文件

#import 
AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if (status == AVAuthorizationStatusRestricted || status == AVAuthorizationStatusDenied) {  // 无权限  
}
typedef NS_ENUM(NSInteger, AVAuthorizationStatus) {
     AVAuthorizationStatusNotDetermined = 0, // 表明用户尚未选择关于客户端是否可以访问硬件
      AVAuthorizationStatusRestricted,// 客户端未被授权访问硬件的媒体类型。用户不能改变客户机的状态,可能由于活跃的限制,如家长控制
     AVAuthorizationStatusDenied, // 明确拒绝用户访问硬件支持的媒体类型的客户
     AVAuthorizationStatusAuthorized// 客户端授权访问硬件支持的媒体类型
} 

你可能感兴趣的:(相机-相册权限)