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;
        }
    }

原文地址:https://www.cnblogs.com/Rong-Shengcom/p/9189940.html

时间: 2024-10-06 19:11:46

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

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

趁着清明节没事,昨天看了mysql性能优化后,想装个linux系统学习下,linux一直是我的短板...之前是在vmware上安装ubuntu,买了新电脑后,听过virtual box相比vmware有不少优点,比如轻量级,开源等,于是想在virtual box上捣鼓下.本以为是个很简单的操作,结果安装好virtual box,下好centos镜像文件后,在安装时却一直黑屏,开始以为是正在安装,过了好久发现还是黑屏,重启了还是一样,于是想肯定有问题.其实选择操作系统时便怀疑为什么virtual

部分 CM11 系统 Android 平板运行植物大战僵尸 2 黑屏的解决办法

原文 http://forum.xda-developers.com/showthread.php?t=2755197 部分 CM11 系统的 Android 平板(例如三星 GT-P5110 )运行植物大战僵尸 2 时黑屏,解决方法如下: 安装 NOMone Resolution Changer 使用上述软件(需要 ROOT 权限)将分辨率调整到 1280 * 768 (适用于 1280 * 800 分辨率的平板),保持 DPI 不变 运行植物大战僵尸 2 部分 CM11 系统 Android

Android Activity切换(跳转)时出现黑屏的解决方法

在两个Activity跳转时,由于第二个Activity在启动时加载了较多数据,就会在启动之前出现一个短暂的黑屏时间,解决这个问题比较简单的处理方法是将第二个Activity的主题设置成透明的,这样在启动第二个Activity时的黑屏就变成了显示第一个Activity界面.这个分两步完成:第一步:xxx/res/values/styles.xml中加入自定义Activity的Theme,如下所示: [html]  <style name="Transparent" parent=

Android Activity切换(跳转)时出现黑屏的解决方法 分享

在两个Activity跳转时,由于第二个Activity在启动时加载了较多数据,就会在启动之前出现一个短暂的黑屏时间,解决这个问题比较简单的处理方法是将第二个Activity的主题设置成透明的,这样在启动第二个Activity时的黑屏就变成了显示第一个Activity界面.这个分两步完成: 第一步:xxx/res/values/styles.xml中加入自定义Activity的Theme,如下所示: [html]  <style name="Transparent" parent

DirectX截图黑屏的解决办法

为什么会黑屏? 一句话概括,黑屏是由于DDraw加速引起的! 先说一下DirectX的显示原理,通常我们看到的屏幕上的数据,都是通过Primary Surface送至显示器的,什么是Primary Surface呢?中文叫做主显示表面,也就是说我们当前看到的屏幕上的图像数据是从这个表面来的,除了主表面意外还有离屏表面,叫做OffScreenSuface.这种表面中的数据是不直接显示在屏幕上的.常用的截屏函数也基本上是通过截取Primary Surface中的数据来实现的.现在多数的视频播放软件都

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

新下载的VMware14,设置了新的虚拟机,镜像放的是ubuntu系统,然后开机要安装系统的时候黑屏,并没有进入到安装系统的界面 解决办法:在管理员权限下打开cmd,然后运行netsh winsock reset 原文地址:https://www.cnblogs.com/cy1993/p/10758583.html

Android 避免APP启动闪黑屏的解决办法(Theme和Style)

闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和onResume才会显示界面 闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和onResume才会显示界面.也就是说需要处理一些数据后,才会显示.按照这种思路,是不是我把初始化的工作尽量减少就可以避免黑屏?事实是,就算你onCreate啥都不做,仍然会闪一下黑屏,因为初始化解析界面时需要一定时间.下面是解决办法: 1.自定义Theme 复制代码代码如下: 设置背景图Theme<style na

升级win10 1903版后,vmware打开虚拟机黑屏的解决办法

按照网上给的方法,做了以下操作: 1. 打开cmd,执行以下命令 netsh winsock reset 2. 重启电脑 3. 以管理员身份执行vmware.exe(右键单击vmware.exe) 4. 确实能进入虚拟机系统了,但关掉虚拟机再次打开时,依旧黑屏 5. 于是,我就重新修改了vmware的虚拟网卡设置,因为我用的NET模式,就把NET模式的网卡做了设置(编辑-虚拟网络编辑器). 6. 将虚拟机整个重新复制到另一个文件夹(注意:不是vmware软件) 7. 重新打开复制后的新虚拟机.

ctrl+alt+F1~6进入不了字符界面,黑屏的解决办法

ubuntu系统,我是ubuntu14.04 本来想装cuda,需要在字符界面下装,奈何按ctrl+alt+F1就黑屏了,按ctrl+alt+F7又可以正常回到图形界面,网上查了很多,有的方法也试过,都解决不了.在别人的帮助下,最终解决了,以下为解决办法: 1.启动系统,开机后不停的按shift键,进入grub界面(有时一次还进去不了,没关系,多尝试几次,我是尝试了3次才成功进入 2.进入grub界面后,按e键,进入编辑界面,这里可以进行编辑,没看到鼠标和指针光标?没关系,试着按下键盘的上下左右