iOS 8相机授权判断

简介: 最近在做自定义相机,然后就是iOS8要授权才能使用,如果用户拒绝,那么,就不能操作。问题是,怎么知道用户第一次选择相机,并且应用有打开相机的权限?// 在iOS7 时,只有部分地区要求授权才能打开相机if (floor(NSFoundationV...

最近在做自定义相机,然后就是iOS8要授权才能使用,如果用户拒绝,那么,就不能操作。

问题是,怎么知道用户第一次选择相机,并且应用有打开相机的权限?

// 在iOS7 时,只有部分地区要求授权才能打开相机
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_7_1) {
        // Pre iOS 8 -- No camera auth required.
            
 }else {
        // iOS 8 后,全部都要授权
        
        // Thanks: http://stackoverflow.com/a/24684021/2611971
        
        AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
        switch (status) {
            case AVAuthorizationStatusNotDetermined:{
                // 许可对话没有出现,发起授权许可
   
                [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
                   
                    if (granted) {
                        //第一次用户接受
                    }else{
                         //用户拒绝
                    }
                }];
                break;
            }
            case AVAuthorizationStatusAuthorized:{
                // 已经开启授权,可继续
               
                break;
            }
            case AVAuthorizationStatusDenied:
            case AVAuthorizationStatusRestricted:
                // 用户明确地拒绝授权,或者相机设备无法访问
                
                break;
            default:
                break;
        }
        
    }

最后一个坑:

没有解决:
而问题的关键是,在第一次授权时,弹出的AlertView,其实,应用已经在后台了。当用户选择其中一个时,会从新回到前台,导致第一次时,如果要打开相机,会非常的慢,暂时还不知道这个问题怎么解决?欢迎在讨论区,谢谢大家!

补充:2015.7.26

发现其它相机应用,刚打开时,就询问打授权,可能这就是目前比较好的解决方案?

  • 如果有什么疑问,可以在评论区一起讨论;
  • 如果有什么不正确的地方,欢迎指导!


注:本文首发于 iHTCboy's blog,如若转载,请注明来源。

目录
相关文章
|
JavaScript 前端开发 Android开发
根据js来判断手机是操作系安卓还是ios
根据js来判断手机是操作系安卓还是ios
600 0
|
Android开发 iOS开发
判断是否为安卓或者IOS
判断是否为安卓或者IOS
566 48
|
iOS开发
iOS开发 - 渐变导航条升级版(判断滚动的方向和改变方向时的位置)
iOS开发 - 渐变导航条升级版(判断滚动的方向和改变方向时的位置)
146 0
iOS开发 - 渐变导航条升级版(判断滚动的方向和改变方向时的位置)
|
iOS开发
iOS开发 - touchBegan事件判断点击的位置在View上还是在View的子View上
iOS开发 - touchBegan事件判断点击的位置在View上还是在View的子View上
290 0
iOS开发 - touchBegan事件判断点击的位置在View上还是在View的子View上
|
文字识别 iOS开发
|
iOS开发
iOS开发 - ScrollView滚动时怎么判断滚动停止及滚动的方向
iOS开发 - ScrollView滚动时怎么判断滚动停止及滚动的方向
913 0
|
存储 Swift iOS开发
iOS - 调用相机连续拍照
iOS - 调用相机连续拍照
174 0
|
数据安全/隐私保护 iOS开发
iOS逆向小技能:解锁无密码的设备、判断设备是否锁定、锁定设备、打开某个程序
介绍lua 函数: runApp、closeApp、getScreenSize、getDeviceID、lua_exit、isFrontApp。
269 0
|
iOS开发
IOS常用正则表达式判断
IOS常用正则表达式判断
106 0
|
JavaScript iOS开发
JS判断IOS系统版本
JS判断IOS系统版本
402 0