iOS 12中的“相机未经相机许可而工作”对话框
在iOS 11中,当应用程序第一次启动时,我将单击摄像头按钮,然后显示摄像头权限对话框 但在iOS 12中,当我点击相机按钮时,它会在没有任何许可的情况下直接打开相机 我已经在我的iOS 12中的“相机未经相机许可而工作”对话框,ios,objective-c,swift,Ios,Objective C,Swift,在iOS 11中,当应用程序第一次启动时,我将单击摄像头按钮,然后显示摄像头权限对话框 但在iOS 12中,当我点击相机按钮时,它会在没有任何许可的情况下直接打开相机 我已经在我的Info.plist文件中添加了隐私-摄像头使用说明 我不知道该怎么办?请给我一些解决办法 +(void)checkPermissionForCameraWithSuccess:(void (^) (void))successHandler failure:(void (^) (void))failureHandle
Info.plist
文件中添加了隐私-摄像头使用说明
我不知道该怎么办?请给我一些解决办法
+(void)checkPermissionForCameraWithSuccess:(void (^) (void))successHandler failure:(void (^) (void))failureHandler
{
AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
switch (status)
{
case AVAuthorizationStatusRestricted:
case AVAuthorizationStatusDenied:{
if (failureHandler)
dispatch_async (dispatch_get_main_queue (), ^{ failureHandler (); });
}; break;
case AVAuthorizationStatusAuthorized:{
if (successHandler)
dispatch_async (dispatch_get_main_queue (), ^{ successHandler (); });
}; break;
case AVAuthorizationStatusNotDetermined:
{
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
if (!granted)
{
if (failureHandler) {
dispatch_async (dispatch_get_main_queue (), ^{ failureHandler (); });
}
} else {
if (successHandler) {
dispatch_async (dispatch_get_main_queue (), ^{ successHandler (); });
}
}
}];
break;
}
default:
break;
}
}
注意:默认情况下,它将返回
status=AVAuthorizationStatusAuthorized
而无需任何权限对话框。您可以共享代码吗,我在iOS 12上获得权限弹出窗口您可以先查看AVCaptureDevice.authorizationStatus
。如果未经授权,请手动询问:AVCaptureDevice.requestAccess
不久前还询问了另一个类似问题:。可能是一个错误。如果有更改,它将仅在您希望保存时请求许可。。。苹果的政策改变了…@Scriptable同意你的看法。