0

我正在使用 ZXing 小部件扫描 QRCode。如果用户从 iOS 设置禁用相机访问,我的应用程序将像这样崩溃:

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“*无法添加,因为设备不支持 AVCaptureSessionPresetMedium。使用 -[AVCaptureDevice 支持 AVCaptureSessionPreset:]。'

有没有办法尝试提示用户重新打开它?

谢谢

狮子座

4

2 回答 2

1

我在 iPad 1 上遇到了同样的错误,我猜是因为 iPad1 没有摄像头。我这样做是为了解决崩溃:

if([[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] supportsAVCaptureSessionPreset:AVCaptureSessionPresetMedium]){
    // add code to open ZXingWidgetController
} else {
    // show alert that device does not support
}
于 2013-01-17T07:36:20.847 回答
0

您可以使用以下代码,它与 iOS 5+ 兼容

- (BOOL)backCameraIsReady
{
    AVCaptureDevice *inputDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    NSError *inputDeviceError = nil;
    AVCaptureDeviceInput *captureInput = [AVCaptureDeviceInput deviceInputWithDevice:inputDevice error:&inputDeviceError];
    if (!captureInput) {
        return NO;
    } else {
        return YES;
    }
}
于 2014-04-14T09:39:47.020 回答