首页 > 解决方案 > iOS 12 中的相机在没有相机权限的情况下工作对话框

问题描述

在 iOS 11 中,当应用程序第一次启动时,我将单击相机的按钮,然后它将显示相机权限对话框。

但是在 iOS 12 中,当我单击相机按钮时,它会在未经任何许可的情况下直接打开相机。

我已经Privacy - Camera Usage Description在我的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无权限对话框。

标签: iosobjective-cswift

解决方案


推荐阅读