我正在使用 ZXing 小部件扫描 QRCode。如果用户从 iOS 设置禁用相机访问,我的应用程序将像这样崩溃:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“*无法添加,因为设备不支持 AVCaptureSessionPresetMedium。使用 -[AVCaptureDevice 支持 AVCaptureSessionPreset:]。'
有没有办法尝试提示用户重新打开它?
谢谢
狮子座
我正在使用 ZXing 小部件扫描 QRCode。如果用户从 iOS 设置禁用相机访问,我的应用程序将像这样崩溃:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“*无法添加,因为设备不支持 AVCaptureSessionPresetMedium。使用 -[AVCaptureDevice 支持 AVCaptureSessionPreset:]。'
有没有办法尝试提示用户重新打开它?
谢谢
狮子座
我在 iPad 1 上遇到了同样的错误,我猜是因为 iPad1 没有摄像头。我这样做是为了解决崩溃:
if([[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] supportsAVCaptureSessionPreset:AVCaptureSessionPresetMedium]){
// add code to open ZXingWidgetController
} else {
// show alert that device does not support
}
您可以使用以下代码,它与 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;
}
}