iOS 判断是否有权限访问相机,相册

1.判断用户是否有权限访问相册

#import <AssetsLibrary/AssetsLibrary.h>
ALAuthorizationStatus author =[ALAssetsLibrary authorizationStatus];
if (author == kCLAuthorizationStatusRestricted || author ==kCLAuthorizationStatusDenied)
{
       //无权限
}

可以注意一下下面这个

typedef enum {
      kCLAuthorizationStatusNotDetermined = 0, // 用户尚未做出选择这个应用程序的问候
      kCLAuthorizationStatusRestricted,        // 此应用程序没有被授权访问的照片数据。可能是家长控制权限
      kCLAuthorizationStatusDenied,            // 用户已经明确否认了这一照片数据的应用程序访问
      kCLAuthorizationStatusAuthorized         // 用户已经授权应用访问照片数据
} CLAuthorizationStatus;

iOS 8 之后推荐用 #import <Photos/Photos.h> 中的判断

PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (status == PHAuthorizationStatusRestricted ||
    status == PHAuthorizationStatusDenied) {
    return NO;
}
return YES;
typedef NS_ENUM(NSInteger, PHAuthorizationStatus) {
    PHAuthorizationStatusNotDetermined = 0, // 默认还没做出选择
    PHAuthorizationStatusRestricted,        // 此应用程序没有被授权访问的照片数据
    PHAuthorizationStatusDenied,            // 用户已经明确否认了这一照片数据的应用程序访问
    PHAuthorizationStatusAuthorized         //  用户已经授权应用访问照片数据
} NS_AVAILABLE_IOS(8_0);

推荐使用

- (BOOL)isCanUsePhotos {
 
    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 8.0) {
        ALAuthorizationStatus author =[ALAssetsLibrary authorizationStatus];
        if (author == kCLAuthorizationStatusRestricted || author == kCLAuthorizationStatusDenied) {
            //无权限
            return NO;
        }
    }
    else {
        PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
        if (status == PHAuthorizationStatusRestricted ||
            status == PHAuthorizationStatusDenied) {
            //无权限
            return NO;
        }
    }
    return YES;
}

猜你喜欢

转载自blog.csdn.net/gumanren/article/details/89671132