ios - 为什么我的 iOS 应用程序不要求用户允许访问相机?

标签 ios avcapturesession avcapturedevice avcam

我开发 iOS 应用程序,它使用摄像头。 AVCaptureDeviceInput 用于连接相机。 我检查授权状态为

- (void)checkDeviceAuthorizationStatus
{
    NSString *mediaType = AVMediaTypeVideo;

    [AVCaptureDevice requestAccessForMediaType:mediaType completionHandler:^(BOOL granted) {
        if (granted)
        {
            //Granted access to mediaType
            [self setDeviceAuthorized:YES];
        }
        else
        {
            //Not granted access to mediaType
            dispatch_async(dispatch_get_main_queue(), ^{
                [[[UIAlertView alloc] initWithTitle:@"AVCam!"
                                            message:@"AVCam doesn't have permission to use Camera, please change privacy settings"
                                           delegate:self
                                  cancelButtonTitle:@"OK"
                                  otherButtonTitles:nil] show];
                [self setDeviceAuthorized:NO];
            });
        }
    }];
}

当我启动应用程序时,为什么它不询问用户是否允许访问相机? 因此该应用程序不会出现在设置/隐私/相机中以手动允许访问相机。 然后显示此错误 “AVCam 没有使用相机的权限,请更改隐私设置” 并且应用无法使用相机。

编辑: 这意味着未经用户许可,不允许应用程序访问相机。 不只是相机,相机胶卷也有同样的问题。

所有这些事情都是在我在设置/重置/恢复所有设置中重置设置后发生的。在此之前,该应用运行良好。

最佳答案

问题已经解决了。我需要一步一步追溯,花了我很长时间才解决问题。 有人建议包括 NSCamerausageDescription 键。实际上,对于 iOS 7 及更高版本的设备来说,这是必需的。我包含了 key ,但仍未询问用户许可。 最后我在 Info.plist 找到了问题。 有一些额外的行,我删除了三行。不确定它们与我的问题有何关系。 我删除的是

(1)获取信息字符串

(2)Bundle显示名称

(3)应用类别

删除info.plist中的这三行后。然后应用程序请求用户许可。关键是您可能需要检查您的 Info.plist 是否存在此类问题。

关于ios - 为什么我的 iOS 应用程序不要求用户允许访问相机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35500405/

相关文章:

ios - 使用 Quartz 2D 在上下文中垂直居中文本

android - Unity 中的 UI 切换

iphone - appendFormat 泄漏

ios - 简化的屏幕截图 : record video of only what appears within the layers of a UIView?

ios - 如何在IOS中检查自动对焦是否仍在进行?

ios - AVCaptureSession 和背景音频 iOS 7

ios - GCM iOS 生产环境

ios - 如何使用 CIDetector 和 Swift 在图像中裁剪检测到的矩形

ios - 无法使用 AVCaptureDevice 获取设备

ios - 使用 OCMock 模拟 AVCaptureDevice