ios 权限获取记录

97 阅读1分钟

1、相机麦克风权限获取

//校验相机权限
- (void)checkCamera {    AVAuthorizationStatus author = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];    if (author == AVAuthorizationStatusRestricted ||        author ==AVAuthorizationStatusDenied){        //无权限        [self showNoCameraAuthAlert];    }else if (author == AVAuthorizationStatusNotDetermined){        //获取权限  如果这个时候没有获取权限而是去设置界面在权限列表可能会没有相机的权限        [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {            dispatch_async(dispatch_get_main_queue(), ^{                if (granted) {                    //允许访问                    [self checkMicrophone];
                }else{                    //不允许访问

                    [self showNoCameraAuthAlert];                }            });

        }];    } else {        //有权限        [self checkMicrophone];    }}//展示没有权限的弹窗- (void)showNoCameraAuthAlert {    [ShareTool alertText:@"未授权相机将无法进行业务办理" leftBtn:@"不开启" rightBtn:@"去设置" leftHandler:^(UIAlertAction * _Nonnull action) {        NSLog(@"action = %@", action);    } rightHandler:^(UIAlertAction * _Nonnull action) {        NSLog(@"action = %@", action);        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];    }];}#pragma mark - 麦克风权限处理//校验麦克风权限- (void)checkMicrophone {    AVAuthorizationStatus microPhoneStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];    switch (microPhoneStatus) {        case AVAuthorizationStatusDenied:        case AVAuthorizationStatusRestricted:        {            //无权限            [self showNoMicroPhoneAuthAlert];        }             break;        case AVAuthorizationStatusNotDetermined:        {            // 没弹窗                [self requestMicroPhoneAuth];        }            break;        case AVAuthorizationStatusAuthorized:        {            // 有授权,获取定位            [self openVideoBank];        }           break;        default:            break;    }}//申请麦克风权限
-(void)requestMicroPhoneAuth {
    [AVCaptureDevice requestAccessForMediaType:AVMediaTypeAudio completionHandler:^(BOOL granted) {
        if (granted) {  //同意
            [self openVideoBank];
        } else {            //无权限            [self showNoMicroPhoneAuthAlert];        }    }];}
//无权限的弹窗- (void)showNoMicroPhoneAuthAlert {    [ShareTool alertText:@"未授权麦克风将无法进行业务办理" leftBtn:@"不开启" rightBtn:@"去设置" leftHandler:^(UIAlertAction * _Nonnull action) {        NSLog(@"action = %@", action);    } rightHandler:^(UIAlertAction * _Nonnull action) {        NSLog(@"action = %@", action);        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];    }];}