美文网首页OC
iOS相册、相机权限判断及跳转至设置界面

iOS相册、相机权限判断及跳转至设置界面

作者: 然亦伞 | 来源:发表于2018-02-28 17:37 被阅读4224次

    一、相册访问权限
    引入Photos.framework框架,利用框架中的PHAuthorizationStatus进行权限状态判断。

    #import <Photos/PHPhotoLibrary.h>
    
    PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
    if (status == PHAuthorizationStatusRestricted || status == PHAuthorizationStatusDenied)
    { 
        // 无权限 
        // do something...
    }
    

    二、相机访问权限

    #import <AVFoundation/AVCaptureDevice.h>
    #import <AVFoundation/AVMediaFormat.h>
    
    AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
    if (status == AVAuthorizationStatusRestricted || status == AVAuthorizationStatusDenied)
    {
        // 无权限
        // do something...
    }
    

    三、访问应用权限设置界面

            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    
    

    AVAuthorizationStatus解释

    typedef NS_ENUM(NSInteger, AVAuthorizationStatus) {
         // 表明用户尚未选择关于客户端是否可以访问硬件
         AVAuthorizationStatusNotDetermined = 0,
         // 客户端未被授权访问硬件的媒体类型。用户不能改变客户机的状态,可能由于活跃的限制,如家长控制
          AVAuthorizationStatusRestricted,
         // 明确拒绝用户访问硬件支持的媒体类型的客户
         AVAuthorizationStatusDenied,
         // 客户端授权访问硬件支持的媒体类型
         AVAuthorizationStatusAuthorized
    } NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
    

    ios11之后的系统,可以不需要进行询问用户,就可以直接访问相册。
    但是这就出现了一个问题,可以不需要进行询问用户,但是选择图片之后,系统又会询问是否允许询问相册权限。为解决这个问题,不要用ALAuthorizationStatus来判断相册权限。

    http://www.qingpingshan.com/rjbc/ios/360952.html

    相关文章

      网友评论

        本文标题:iOS相册、相机权限判断及跳转至设置界面

        本文链接:https://www.haomeiwen.com/subject/llsixftx.html