// 相册权限枚举
typedef NS_ENUM(NSInteger, AlbumAuthorizationType) {
AlbumAuthorizationTypeDefault, // 默认还没做出选择
AlbumAuthorizationTypeClose, // 此应用程序没有被授权访问的照片数据
AlbumAuthorizationTypeAllow // 用户已经授权应用访问照片数据
};
// 相机权限枚举
typedef NS_ENUM(NSInteger, CameraAuthorizationType) {
CameraAuthorizationTypeDefault, // 默认还没做出选择
CameraAuthorizationTypeClose, // 此应用程序没有被授权访问的照片数据
CameraAuthorizationTypeAllow // 用户已经授权应用访问照片数据
};
#pragma mark 获取相册权限
+ (void)albumAuthorizationWithAuthorization:(void(^)(AlbumAuthorizationType authorization))authorization;
#pragma mark 获取相册权限
+ (void)cameraAuthorizationWithAuthorization:(void(^)(CameraAuthorizationType authorization))authorization;
#pragma mark 访问是否获取了相册权限
+ (void)albumAuthorizationWithAuthorization:(void(^)(AlbumAuthorizationType authorization))authorization {
PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (status == PHAuthorizationStatusRestricted ||
status == PHAuthorizationStatusDenied) {
authorization(AlbumAuthorizationTypeClose); // 关闭了权限
} else if (status == PHAuthorizationStatusAuthorized) {
authorization(AlbumAuthorizationTypeAllow); // 开了权限
} else {
// 如果是默认状态,就开始申请权限,并将申请到的权限返回
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
if (status == PHAuthorizationStatusDenied) {
authorization(AlbumAuthorizationTypeClose); // 关闭了权限
} else if (status == PHAuthorizationStatusAuthorized) {
authorization(AlbumAuthorizationTypeAllow); // 开了权限
}
}];
}
}
#pragma mark 获取相机权限
+ (void)cameraAuthorizationWithAuthorization:(void(^)(CameraAuthorizationType authorization))authorization {
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if (authStatus == AVAuthorizationStatusAuthorized) {
authorization(CameraAuthorizationTypeAllow); // 权限已开启
} else if (authStatus == AVAuthorizationStatusDenied) {
authorization(CameraAuthorizationTypeClose); // 权限已关闭
} else if (authStatus == AVAuthorizationStatusNotDetermined) {
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
if (granted) {
authorization(CameraAuthorizationTypeAllow); // 权限已开启
} else {
authorization(CameraAuthorizationTypeClose); // 权限已关闭
}
}];
}
}
测试相册相机权限
最新推荐文章于 2025-09-07 12:22:08 发布
6万+

被折叠的 条评论
为什么被折叠?



