カメラを使用しようとすると、いくつかの問題が発生します。問題は、設定の下にカメラのエントリが表示されるデバイスと表示されないデバイスがあることです。カメラ スイッチが表示されないデバイスでは、カメラに権限がなく、有効にする設定にも表示されないため、カメラを使用できません。
これは、動作するデバイスでどのように見えるかです:
そして、これは動作しないデバイスでどのように見えるかです.
これらのスクリーンショットを撮ったとき、アプリケーションは既にアクセス許可を求めているはずですが、そうではありませんでした。
また、これらのデバイスで制限が有効になっていないことも確認しました。
何か案は?
更新 1: コードを追加
これは、カメラを表示するために使用しているコードです (ネイティブのカメラ ビュー コントローラーではなく、カスタム ビューの下にあります)。
self.captureSession = [[AVCaptureSession alloc] init];
AVCaptureDevice *videoCaptureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error = nil;
AVCaptureDeviceInput *videoInput = [AVCaptureDeviceInput deviceInputWithDevice:videoCaptureDevice error:&error];
if(videoInput)
{
[self.captureSession addInput:videoInput];
}
else
{
NSLog(@"Error: %@", error);
}
AVCaptureMetadataOutput *metadataOutput = [[AVCaptureMetadataOutput alloc] init];
[self.captureSession addOutput:metadataOutput];
[metadataOutput setMetadataObjectsDelegate:self
queue:dispatch_get_main_queue()];
[metadataOutput setMetadataObjectTypes:@[AVMetadataObjectTypeCode39Code, AVMetadataObjectTypeQRCode]];
AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:self.captureSession];
previewLayer.frame = self.view.layer.bounds;
UIView * previewView = [[UIView alloc] initWithFrame:self.view.frame];
[previewView.layer addSublayer:previewLayer];
[self.view addSubview:previewView];
[self.view sendSubviewToBack:previewView];
[self.captureSession startRunning];