在macOS Mojave中请求相机权限

时间:2018-09-26 06:35:44

标签: swift macos camera privacy macos-mojave

如果用户未授予权限,则在macOS Mojave中为相机初始化 AVCaptureDeviceInput 失败。 尝试初始化时,系统会自动显示权限请求对话框。似乎无法通知用户响应。

我正在寻找一种模拟方式来获得通知,例如在以下位置请求音频许可:

Protecting the User's Privacy指南未概述访问相机的任何其他方法。

2 个答案:

答案 0 :(得分:1)

通过从 AVCaptureDeviceInput 上检查authorizationStatus(for:),然后从中初始化 AVCaptureDeviceInput ,发现该解决方案实际上与iOS类似。

并根据需要使用requestAccess(for:completionHandler:)来请求权限。

获取摄像头访问权限的示例:

let status = AVCaptureDevice.authorizationStatus(for: .video)

if status == .authorized {
  // connect to video device
  let devices = AVCaptureDevice.devices(for: .video)
  ...
  return
}

if status == .denied {
  // show error
  return
}

AVCaptureDevice.requestAccess(for: .video) { (accessGranted) in
  // handle result
}

答案 1 :(得分:0)

用于呈现对话框和捕获响应的Apple文档位于: Requesting Authorization for Media Capture on MacOS

它确实需要对话框的异步处理,因此结合检查授权状态和文档中介绍的方法可能会有所帮助。

史蒂夫