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

一、相册访问权限
引入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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近在做一个环信即时聊天的项目,突然发现了一个问题,在进行聊天时候,选择图片,居然没有询问用户,直接可以访问相册,...
    我是七月阅读 18,486评论 14 27
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,386评论 25 709
  • 版本记录 前言 前一篇已经对极光推送产品架构和服务进行了介绍,这一篇则只对ios客户端的集成和使用等状况进行了说明...
    刀客传奇阅读 4,895评论 0 0
  • 第五章 第六章 让青语大学沸腾的又一个新闻,樱也转来这个学校了。 樱有着湖水新月般的乖巧容貌,黑色齐耳短发,眸子...
    腐草为滢阅读 3,717评论 4 2
  • 太爷走的那年,我三岁,一点儿印象也没有。我只隐约觉得,家里发生了些事。那会家里的长辈也从不提,想问,又不敢。后来长...
    饶葭曦阅读 3,860评论 0 0