一、相冊訪問權(quán)限
引入Photos.framework框架,利用框架中的PHAuthorizationStatus進行權(quán)限狀態(tài)判斷。
#import <Photos/PHPhotoLibrary.h>
PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (status == PHAuthorizationStatusRestricted || status == PHAuthorizationStatusDenied)
{
// 無權(quán)限
// do something...
}
二、相機訪問權(quán)限
#import <AVFoundation/AVCaptureDevice.h>
#import <AVFoundation/AVMediaFormat.h>
AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if (status == AVAuthorizationStatusRestricted || status == AVAuthorizationStatusDenied)
{
// 無權(quán)限
// do something...
}
三、訪問應用權(quán)限設(shè)置界面
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
AVAuthorizationStatus解釋
typedef NS_ENUM(NSInteger, AVAuthorizationStatus) {
// 表明用戶尚未選擇關(guān)于客戶端是否可以訪問硬件
AVAuthorizationStatusNotDetermined = 0,
// 客戶端未被授權(quán)訪問硬件的媒體類型。用戶不能改變客戶機的狀態(tài),可能由于活躍的限制,如家長控制
AVAuthorizationStatusRestricted,
// 明確拒絕用戶訪問硬件支持的媒體類型的客戶
AVAuthorizationStatusDenied,
// 客戶端授權(quán)訪問硬件支持的媒體類型
AVAuthorizationStatusAuthorized
} NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
ios11之后的系統(tǒng),可以不需要進行詢問用戶,就可以直接訪問相冊。
但是這就出現(xiàn)了一個問題,可以不需要進行詢問用戶,但是選擇圖片之后,系統(tǒng)又會詢問是否允許詢問相冊權(quán)限。為解決這個問題,不要用ALAuthorizationStatus來判斷相冊權(quán)限。