iOS开发调用相机时出现黑屏的解决办法(原因:没有获取到相机权限)

Posted #零下一度&

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发调用相机时出现黑屏的解决办法(原因:没有获取到相机权限)相关的知识,希望对你有一定的参考价值。

 

ios开发调用相机时出现黑屏的解决办法(原因:没有获取到相机权限)

在开发过程中调用系统相机,但是页面出现黑屏,原因是自己只进行了部分的相机权限的判断没有根据系统的版本判断,

 

 

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
        
        AVAuthorizationStatus authStatus =  [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
        
        if (authStatus == AVAuthorizationStatusDenied || authStatus == AVAuthorizationStatusRestricted)
        {
            UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"打开相机权限" message:nil preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"去设置" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
                if([[UIApplication sharedApplication] canOpenURL:url]) {
                    [[UIApplication sharedApplication] openURL:url];
                }
            }];
            UIAlertAction *canleAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
            [alert addAction:okAction];
            [alert addAction:canleAction];
            [self presentViewController:alert animated:YES completion:nil];
            return;
           
        }
    }else{
        ALAuthorizationStatus author = [ALAssetsLibrary authorizationStatus];
        if (author == kCLAuthorizationStatusRestricted || author == kCLAuthorizationStatusDenied)
        {
            UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"打开相机权限" message:nil preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"去设置" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
                if([[UIApplication sharedApplication] canOpenURL:url]) {
                    [[UIApplication sharedApplication] openURL:url];
                }
            }];
            UIAlertAction *canleAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
            [alert addAction:okAction];
            [alert addAction:canleAction];
            [self presentViewController:alert animated:YES completion:nil];
            return;
        }
    }

 

 

 

 

以上是关于iOS开发调用相机时出现黑屏的解决办法(原因:没有获取到相机权限)的主要内容,如果未能解决你的问题,请参考以下文章

EasyNVR调用指定时间端录像播放接口出现黑屏的问题原因以及解决方法

如何处理没有黑屏的android相机打开

APP开发----启动闪屏的解决办法

关于VMware虚拟机安装镜像时黑屏的解决办法

在Ubuntu系统下连接远程服务器出现黑屏的解决办法

vitrual box安装centos时一直黑屏的解决办法