iOS麦克风权限的检测和获取

前言

今天接到一个任务,检测应用是否有麦克风的权限,网上找了很多资料,然后终于明白了检测和获取的区别

检测权限

检测就是判断用户是否打开了麦克风的权限
判断方法是这样的

 AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];
    switch (authStatus) {
        case AVAuthorizationStatusNotDetermined:
        //没有询问是否开启麦克风
            flag = 1;
            break;
        case AVAuthorizationStatusRestricted:
        //未授权,家长限制
            flag = 0;
            break;
        case AVAuthorizationStatusDenied:
        //玩家未授权
            flag = 0;
            break;
        case AVAuthorizationStatusAuthorized:
        //玩家授权
            flag = 2;
            break;
        default:
            break;
    }
    return flag;
}

获取权限

获取权限就会弹一个框,让用户选择是否开启这个权限

 [audioSession performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) {
                if (granted) {
                    bCanRecord = YES;
                }
                else {
                    bCanRecord = NO;
                   }
                ];

后记

Android判断是否开启的麦克风
在Android6.0 之前只需要在manifest.xml中注册一下就好了,但是Android6.0之后权限管理更加严格了,需要在运行的时候去获取,官网有一个例子,怎么在运行的时候提示用户开启权限,但是其实有个更取巧的方法,在代码里面打开麦克风,如果打开成功,说明用户开启了权限,如果失败,就可以认为玩家关掉了该权限

你可能感兴趣的:(其他)