原文地址:http://www.aslibra.com/blog/read.php/1781.htm
//判断是否禁用了相机
AVAuthorizationStatus cameraStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
//如果明确否认或者家长控制权限,不能打开相机
if (cameraStatus == AVAuthorizationStatusDenied || cameraStatus == AVAuthorizationStatusRestricted) {
NSLog(@"不能打开相机");
canCamerOpen = NO;
} else {
NSLog(@"能打开相机");
canCamerOpen = YES;
}
//判断是否禁用了相册
ALAuthorizationStatus photoStatus = [ALAssetsLibrary authorizationStatus];
//如果明确否认或者家长控制权限,不能打开相册
if (photoStatus == ALAuthorizationStatusDenied || photoStatus == ALAuthorizationStatusRestricted) {
NSLog(@"不能打开相册");
canPhotoOpen = NO;
} else {
NSLog(@"能打开相册");
canPhotoOpen = YES;
}
typedef NS_ENUM(NSInteger, ALAuthorizationStatus) {
ALAuthorizationStatusNotDetermined = 0, 用户尚未做出了选择这个应用程序的问候
ALAuthorizationStatusRestricted, 此应用程序没有被授权访问的照片数据。可能是家长控制权限。
ALAuthorizationStatusDenied, 用户已经明确否认了这一照片数据的应用程序访问.
ALAuthorizationStatusAuthorized 用户已授权应用访问照片数据.
}
我们在应用中只需要通过ALAuthorizationStatus author = [ALAssetsLibrary authorizationStatus];相册的权限值, 然后做相应的操作。
1.在ios7之前摄像头是一直可以访问的,隐私设置选项中没有关闭相应软件的摄像头功能的选项。在ios7以后摄像头和相册一样增加了访问权限的设置,应用中第一次访问摄像头的时候,系统会询问你是否授权应用访问你的摄像头。摄像头的权限和相册的权限基本上一样,有:
typedef NS_ENUM(NSInteger, AVAuthorizationStatus) {
AVAuthorizationStatusNotDetermined = 0,
AVAuthorizationStatusRestricted,
AVAuthorizationStatusDenied,
AVAuthorizationStatusAuthorized
} NS_AVAILABLE_IOS(7_0);
我们可以通过
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; 获取对摄像头的访问权限。