1. 程式人生 > >iOS中判斷照片和相機許可權

iOS中判斷照片和相機許可權

1、照片許可權判斷

在iOS6之後,app中使用照片(即自帶相簿)需要使用者許可權驗證,所以我們可以做一個許可權判斷給出友好的提示或者介面效果。

相簿判斷需要匯入 <AssetsLibrary/AssetsLibrary.h>

ALAuthorizationStatus author = [ALAssetsLibrary authorizationStatus];
typedef NS_ENUM(NSInteger, ALAuthorizationStatus) {
    ALAuthorizationStatusNotDetermined = 0, // 使用者還未決定是否授權訪問相簿
    ALAuthorizationStatusRestricted,        // 沒有被授權訪問相簿,可能是家長控制權限
                                            // The user cannot change this application’s status, possibly due to active restrictions
                                            //  such as parental controls being in place.
    ALAuthorizationStatusDenied,            // 使用者拒絕程式訪問相簿
    ALAuthorizationStatusAuthorized         // 使用者已授權程式訪問相簿
} __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_6_0);

2、相機許可權判斷

在iOS7之前,設定中是沒有相機設定選項,程式預設是可以訪問相機的。在iOS7之後添加了這一許可權。

判斷相機許可權需要匯入 <AVFoundation/AVCaptureDevice.h>

NSString *mediaType = AVMediaTypeVideo;

AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];
列舉型別與相簿的基本一致。
typedef NS_ENUM(NSInteger, AVAuthorizationStatus) {
	AVAuthorizationStatusNotDetermined = 0,   //使用者還未決定是否給程式授權相機許可權
	AVAuthorizationStatusRestricted,<span style="white-space:pre">	</span>//沒有授權相機許可權,可能是家長控制權限
	AVAuthorizationStatusDenied,<span style="white-space:pre">		</span>//使用者拒絕程式擁有相機許可權
	AVAuthorizationStatusAuthorized<span style="white-space:pre">		</span>//使用者授權程式訪問相機
} NS_AVAILABLE_IOS(7_0);