您的位置:首页 > 移动开发 > IOS开发

iOS开发判断是否开启摄像头权限

2017-05-10 16:39 441 查看
虽然iOS10添加了隐私权限提示,但是当我们拒绝开启权限后,再次调用就会出现崩溃问题,为了避免这个问题,我们可以在调用设备前判断是否开启了调用权限

- (void)judgeCameraLimits{
/// 先判断摄像头硬件是否好用
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
// 用户是否允许摄像头使用
NSString * mediaType = AVMediaTypeVideo;
AVAuthorizationStatus  authorizationStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];
// 不允许弹出提示框
if (authorizationStatus == AVAuthorizationStatusRestricted|| authorizationStatus == AVAuthorizationStatusDenied) {
[RMUtils alertWithTitle:@"" message:@"摄像头访问受限,前往设置" delegate:self tag:10 cancelButtonTitle:@"取消" otherButtonTitles:@"设置"];
}else{
// 这里是摄像头可以使用的处理逻辑
}
} else {
// 硬件问题提示
[RMUtils showAlertControllerWithMessage:@"请检查手机摄像头设备" onViewController:self];
}
}


当点击去设置时需要判断当前手机系统的版本,iOS10已经废弃了之前的方法

if (buttonIndex == 1) {
if ([RMUserInfo shareInstance].iosType == ios10) {
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}else{
NSURL*url = [NSURL URLWithString:@"prefs:root=About"];
if ([[UIApplication sharedApplication] canOpenURL:url]){
[[UIApplication sharedApplication] openURL:url];
}
}
}


如果是iOS10以下,还要在info设置中添加配置,如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息