Request camera permission before QR scanning

This commit is contained in:
yumoqing 2026-06-24 19:25:42 +08:00
parent f220800262
commit e87921b59f

View File

@ -98,6 +98,30 @@ class QRScannerWindowController: NSObject, AVCaptureMetadataOutputObjectsDelegat
// 在后台线程初始化摄像头 // 在后台线程初始化摄像头
private func setupCaptureOnBackground(previewHost: NSView) { private func setupCaptureOnBackground(previewHost: NSView) {
// 先检查摄像头权限
switch AVCaptureDevice.authorizationStatus(for: .video) {
case .notDetermined:
AVCaptureDevice.requestAccess(for: .video) { [weak self] granted in
if granted {
self?.setupCaptureOnBackground(previewHost: previewHost)
} else {
DispatchQueue.main.async {
self?.showError("Camera permission denied")
}
}
}
return
case .denied, .restricted:
DispatchQueue.main.async { [weak self] in
self?.showError("Camera permission denied")
}
return
case .authorized:
break
@unknown default:
break
}
let session = AVCaptureSession() let session = AVCaptureSession()
session.sessionPreset = .high session.sessionPreset = .high