1.判斷用戶是否有權限訪問相冊
#import <AssetsLibrary/AssetsLibrary.h>
ALAuthorizationStatus author =[ALAssetsLibrary authorizationStatus];
if (author == kCLAuthorizationStatusRestricted || author ==kCLAuthorizationStatusDenied)
{
//無權限
}
可以注意一下下面這個
typedef enum {
kCLAuthorizationStatusNotDetermined = 0, // 用戶尚未做出選擇這個應用程序的問候
kCLAuthorizationStatusRestricted, // 此應用程序沒有被授權訪問的照片數(shù)據(jù)??赡苁羌议L控制權限
kCLAuthorizationStatusDenied, // 用戶已經(jīng)明確否認了這一照片數(shù)據(jù)的應用程序訪問
kCLAuthorizationStatusAuthorized // 用戶已經(jīng)授權應用訪問照片數(shù)據(jù)
} CLAuthorizationStatus;
iOS 8 之后推薦用 #import <Photos/Photos.h> 中的判斷
PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (status == PHAuthorizationStatusRestricted ||
status == PHAuthorizationStatusDenied) {
return NO;
}
return YES;
typedef NS_ENUM(NSInteger, PHAuthorizationStatus) {
PHAuthorizationStatusNotDetermined = 0, // 默認還沒做出選擇
PHAuthorizationStatusRestricted, // 此應用程序沒有被授權訪問的照片數(shù)據(jù)
PHAuthorizationStatusDenied, // 用戶已經(jīng)明確否認了這一照片數(shù)據(jù)的應用程序訪問
PHAuthorizationStatusAuthorized // 用戶已經(jīng)授權應用訪問照片數(shù)據(jù)
} NS_AVAILABLE_IOS(8_0);
推薦使用
- (BOOL)isCanUsePhotos {
if ([[[UIDevice currentDevice] systemVersion] floatValue] < 8.0) {
ALAuthorizationStatus author =[ALAssetsLibrary authorizationStatus];
if (author == kCLAuthorizationStatusRestricted || author == kCLAuthorizationStatusDenied) {
//無權限
return NO;
}
}
else {
PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (status == PHAuthorizationStatusRestricted ||
status == PHAuthorizationStatusDenied) {
//無權限
return NO;
}
}
return YES;
}
但實際上系統(tǒng)會提示下面一張圖,可以不做判斷的,哈哈哈
英語環(huán)境下的沒有權限
2.判斷用戶是否有權限訪問相機
iOS7之前都可以訪問相機,iOS7之后訪問相機有權限設置,所以還是需要我們手動去設置判斷。
#import <AVFoundation/AVCaptureDevice.h>
#import <AVFoundation/AVMediaFormat.h>
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if (authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied)
{
//無權限
}
typedef NS_ENUM(NSInteger, AVAuthorizationStatus) {
AVAuthorizationStatusNotDetermined = 0,// 系統(tǒng)還未知是否訪問,第一次開啟相機時
AVAuthorizationStatusRestricted, // 受限制的
AVAuthorizationStatusDenied, //不允許
AVAuthorizationStatusAuthorized // 允許狀態(tài)
} NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;