现在iOS开发中要使用设备的相册、相机都需要经过本人同意,如果用户未同意使用相机,当需要的时候如何更快的去设置呢,这就需要我们开发的时候就要考虑到位。
下面是我项目中用到的关于相机,相册用到的判断:
一、判断设备相机是否可用:
if ([UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
// 设备相机可用
}二、判断设备是否开启相机授权:
AVAuthorizationStatus authStatus = [AVCaptureDeviceauthorizationStatusForMediaType:AVMediaTypeVideo];
if (authStatus ==AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied) {
// 设备未开启相机授权,需要开启相机授权
}
// 使用上面的方法需要导入头文件
#import <AVFoundation/AVCaptureDevice.h> // 相机
#import <AVFoundation/AVMediaFormat.h> // 相机
/**
AVAuthorizationStatusNotDetermined =0, // 相机授权状态不确定(用户尚未作出选择)
AVAuthorizationStatusRestricted, // 相机授权状态被限制
AVAuthorizationStatusDenied, // 相机不允许被访问
AVAuthorizationStatusAuthorized // 相机允许被访问
*/
三、判断设备是否开启相册授权:
ALAuthorizationStatus status = [ALAssetsLibraryauthorizationStatus];
if (status ==kCLAuthorizationStatusRestricted || status ==kCLAuthorizationStatusDenied) {
// 设备未开启相册授权,需要开启相册授权
}
// 使用上面的方法需要导入头文件和依赖库
#import <AssetsLibrary/AssetsLibrary.h> // 相册
// 相册也有几种不同的状态
/**
kCLAuthorizationStatusNotDetermined =0,
kCLAuthorizationStatusRestricted,
kCLAuthorizationStatusDenied,
kCLAuthorizationStatusAuthorized
*/
四、从当前APP跳转至当前APP的系统设置页面:如果项目的相机、相册未被用户授权,需要跳转到当前项目的系统设置界面进行设置
NSURL *url = [NSURLURLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplicationsharedApplication] canOpenURL:url]) {
[[UIApplicationsharedApplication] openURL:url];
}