前言
今天接到一个任务,检测应用是否有麦克风的权限,网上找了很多资料,然后终于明白了检测和获取的区别
检测权限
检测就是判断用户是否打开了麦克风的权限
判断方法是这样的
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之后权限管理更加严格了,需要在运行的时候去获取,官网有一个例子,怎么在运行的时候提示用户开启权限,但是其实有个更取巧的方法,在代码里面打开麦克风,如果打开成功,说明用户开启了权限,如果失败,就可以认为玩家关掉了该权限