Files
openclaw/apps/shared/OpenClawKit/Sources/OpenClawKit/CameraAuthorization.swift
2026-03-02 11:32:20 +00:00

22 lines
674 B
Swift

import AVFoundation
public enum CameraAuthorization {
public static func isAuthorized(for mediaType: AVMediaType) async -> Bool {
let status = AVCaptureDevice.authorizationStatus(for: mediaType)
switch status {
case .authorized:
return true
case .notDetermined:
return await withCheckedContinuation(isolation: nil) { cont in
AVCaptureDevice.requestAccess(for: mediaType) { granted in
cont.resume(returning: granted)
}
}
case .denied, .restricted:
return false
@unknown default:
return false
}
}
}