美文网首页iOS开发
iOS判断是否有权限访问相册/相机

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

作者: JxSr程知农 | 来源:发表于2019-08-15 11:19 被阅读0次
    
    ### 一、判断是否有权限访问相册。
    
    /**
    
     * @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];
    
    }
    

    相关文章

      网友评论

        本文标题:iOS判断是否有权限访问相册/相机

        本文链接:https://www.haomeiwen.com/subject/lugajctx.html