如何在IOS上获取照片/相机的授权状态?
我正在使用如何在IOS上获取照片/相机的授权状态?,ios,uiimagepickercontroller,Ios,Uiimagepickercontroller,我正在使用UIImagePickerController。我需要引导我的用户进入Setting->Privacy,如果他们首先拒绝了摄像头/照片访问,则可以解锁 默认情况下,UIImagePickerController将显示: 但是,在演示UIImagePickerController之前,我想要这条消息怎么样?我怎样才能得到我是否有访问权的信息 我想声明这不是一个完全重复的问题AVCaptureDevice在这个问题中只修复了对相机的访问,但仍然无法检测到对“相册”的访问。这个问题提到了类
UIImagePickerController
。我需要引导我的用户进入Setting->Privacy
,如果他们首先拒绝了摄像头/照片访问,则可以解锁
默认情况下,UIImagePickerController
将显示:
但是,在演示UIImagePickerController
之前,我想要这条消息怎么样?我怎样才能得到我是否有访问权的信息
我想声明这不是一个完全重复的问题AVCaptureDevice
在这个问题中只修复了对相机的访问,但仍然无法检测到对“相册”的访问。这个问题提到了类AVCaptureDevice
,它可以修复对相机使用的授权
我找到了“照片”授权的解决方案。IOS8中有一个名为Photos
的新框架和一个类PHPhotoLibrary
此方法可发出警报:
PHPhotoLibrary.requestAuthorization({(status: PHAuthorizationStatus)in
switch status{
case .denied:
break
case .authorized:
break
default:
break
}
})
就像第一次出现UIImagePickerController
时一样
和class func authorizationStatus()->PHAuthorizationStatus
可以返回“相册”的当前授权状态AVCaptureDevice为此提供API
if (![[AVCaptureDevice class] respondsToSelector:@selector(authorizationStatusForMediaType:)])
{
//Do something…
break;
}
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
switch (authStatus)
{
case AVAuthorizationStatusAuthorized:
case AVAuthorizationStatusRestricted:
{
//Do something…
break;
}
case AVAuthorizationStatusDenied:
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"App name" message:@"Appname does not have access to your camera. To enable access, go to iPhone Settings > AppName and turn on Camera." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
//Do something…
break;
}
case AVAuthorizationStatusNotDetermined:
{
// not determined?!
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted)
{
if(granted)
{
dispatch_async(dispatch_get_main_queue(), ^
{
//Do something…
});
}
else
{
dispatch_async(dispatch_get_main_queue(), ^
{
//Do something…
});
}
}];
break;
}
default:
break;
}
使用AVCaptureDevice
的可能重复操作只会修复对相机的访问,而不会修复对相册的访问@杰夫