swift - 在 macOS Mojave 中请求相机权限

标签 swift macos camera privacy macos-mojave

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

我正在寻找一种模拟方式来获得通知,就像请求音频权限一样:

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

最佳答案

查看authorizationStatus(for:)发现解决方案其实是模拟iOS的在从 AVCaptureDevice 初始化一个 AVCaptureDeviceInput 之前。

并使用 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
}

关于swift - 在 macOS Mojave 中请求相机权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52511373/

相关文章:

macos - 如何从 OS X 卸载 Carthage?

c++ - 在提升线程中调用 pthread_getspecific 时访问错误

Android 相机无法从后台服务拍照

android - 拍照卡在 Android 2.3.3 上

swift - 使用 iPhone 相机的 macOS App

swift - 扩展 UIKit 委托(delegate)协议(protocol)

swift - 在 swift 5 中使用 UTF-8 解码字符串

macos - 如何创建与 Finder 的 "Compress"菜单项格式相同的 zip 文件?

swift - 如何将 SKSpriteNode 放在 CAShapeLayer 前面?

swift - 为什么我的 UISearchBar 没有更新结果?