iOS 判斷是否有權限訪問相機,相冊


1.判斷用戶是否有權限訪問相冊

#import <AssetsLibrary/AssetsLibrary.h> ALAuthorizationStatus author =[ALAssetsLibrary authorizationStatus]; if (author == kCLAuthorizationStatusRestricted || author ==kCLAuthorizationStatusDenied) { //無權限 }

可以注意一下下面這個

typedef enum { kCLAuthorizationStatusNotDetermined = 0, // 用戶尚未做出選擇這個應用程序的問候 kCLAuthorizationStatusRestricted, // 此應用程序沒有被授權訪問的照片數據。可能是家長控制權限 kCLAuthorizationStatusDenied, // 用戶已經明確否認了這一照片數據的應用程序訪問 kCLAuthorizationStatusAuthorized // 用戶已經授權應用訪問照片數據 } 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, // 此應用程序沒有被授權訪問的照片數據 PHAuthorizationStatusDenied, // 用戶已經明確否認了這一照片數據的應用程序訪問 PHAuthorizationStatusAuthorized // 用戶已經授權應用訪問照片數據 } 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; }

但實際上系統會提示下面一張圖,可以不做判斷的,哈哈哈


英語環境下的沒有權限

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,// 系統還未知是否訪問,第一次開啟相機時 AVAuthorizationStatusRestricted, // 受限制的 AVAuthorizationStatusDenied, //不允許 AVAuthorizationStatusAuthorized // 允許狀態 } NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM