### 一、判断是否有权限访问相册。
/**
* @desc 判断是否为明确无效的访问权限 for 系统相册。
*/
+ (BOOL)explicitlyInvalidAccessAuthForPhoto} {
/**
* PHAuthorizationStatusNotDetermined (默认)用户还没做出选择。
* PHAuthorizationStatusRestricted 此应用程序没有被授权访问的照片数据。
* PHAuthorizationStatusDenied 用户已经明确否认了照片数据的应用程序访问。
* PHAuthorizationStatusAuthorized 用户已经授权应用访问照片数据。
*/
PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (PHAuthorizationStatusRestricted == status
||PHAuthorizationStatusDenied == status) {
return YES;//无权限。可以弹出提示:请您先允许App访问照片。\n是否现在前往设置?
}
return NO;
}
### 二、判断是否有权限访问相机。
/**
* @desc 判断是否为明确无效的访问权限 for 系统相机。
*/
+ (BOOL)explicitlyInvalidAccessAuthForCapture {
/**
* AVAuthorizationStatusNotDetermined (默认)用户还没做出选择。
* AVAuthorizationStatusRestricted 此应用程序没有被授权访问。
* AVAuthorizationStatusDenied 用户已经明确否认应用程序访问。
* AVAuthorizationStatusAuthorized 用户已经授权应用程序访问。
*/
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if (AVAuthorizationStatusRestricted == authStatus
||AVAuthorizationStatusDenied == authStatus) {
return YES;//无权限。可以弹出提示:请您先允许App访问相机。\n是否现在前往设置?
}
return NO;
}
三、打开App对应的系统设置界面。
/**
* @desc 打开App对应的系统设置界面。
*@param msg 如:@"请您先允许App访问相机。\n是否现在前往设置?"
*/
+ (void)openAppSysSettingWithMsg:(NSString*)msg andBaseVC:(UIViewController*)vc {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:msg preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *actionForCancel = [UIAlertAction actionWithTitle:@"否" style:UIAlertActionStyleCancel handler:NULL];
[alertaddAction:actionForCancel];
UIAlertAction *actionForOther = [UIAlertAction actionWithTitle:@"前往" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}];
[alertaddAction:actionForOther];
[vcpresentViewController:alert animated:YES completion:nil];
}
网友评论