系统从不提示用户使用相机

时间:2015-10-09 15:03:04

标签: ios camera

民间,

我迫切需要一些反馈。我已经在这几天工作,没有运气。我有一个应用程序已发布到App Store并在9.0之前工作。问题是相机。当用户尝试扫描条形码时,他/她被提升以允许在设备上使用相机。使用9.0时,这似乎只能在较旧的设备上打破:5s,5c(有些不是全部),迷你iPad。作为调试的一部分,我使用了Apple的AVCam示例代码并使用它更新了应用程序。 AVCam编译并从Xcode 7加载到5s,相机工作。我的应用程序,使用样本中的AVCam摄像头代码(复制和粘贴),从Xcode 7编译和加载,仍然从不提示用户允许相机。我的iPhone 6 Plus适用于所有这些迭代(第一次提示用户)。我觉得它是应用程序环境中的东西,因为它是由Xcode 5创建的,然后更新为Xcode 6,现在是Xcode 7.但问题是在哪里看?顺便说一句,旧设备上的相机状态以"未确定"开始,并显示黑屏。当用户再次尝试使用相机时,此时我会看到相机状态"拒绝"。每次全新安装后,都不会向用户显示提示。

设置>隐私>相机显示该应用程序从未要求相机。但我知道这不是真的:代码确实要求了。

这是请求相机使用的狙击码:

switch ( [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo] )


{
    case AVAuthorizationStatusAuthorized:
    {
        // The user has previously granted access to the camera.
        NSLog(@" ******* CAMERA USAGE AUTHORIZED FROM THE START ******* ");
        break;
    }
    case AVAuthorizationStatusNotDetermined:
    {
        // The user has not yet been presented with the option to grant video access.
        // We suspend the session queue to delay session setup until the access request has completed to avoid
        // asking the user for audio access if video access is denied.
        // Note that audio access will be implicitly requested when we create an AVCaptureDeviceInput for audio during session setup.
        NSLog(@"***** CAMERA STATUS NOT DETERMINED FROM THE START ***** ");
        dispatch_suspend( self.sessionQueue );
        [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^( BOOL granted ) {
            NSLog(@" Do we now have permission %d", granted);
            if ( ! granted ) {
                self.setupResult = AVCamSetupResultCameraNotAuthorized;
            }
            dispatch_resume( self.sessionQueue );
        }];
        break;
    }
    default:
    {
        // The user has previously denied access.
        NSLog(@"**** CAMERA USAGE NOT AUTHORIZED FROM THE START **** ");
        self.setupResult = AVCamSetupResultCameraNotAuthorized;
        break;
    }
}

0 个答案:

没有答案