gpt4 book ai didi

swift - requestAccessForMediaType 不请求许可

转载 作者:搜寻专家 更新时间:2023-10-31 22:03:30 25 4
gpt4 key购买 nike

我注意到我的应用未请求使用相机的权限。经过一些实验后,我发现用于检查权限的代码需要很长时间才能完成。所以我想到让我的 viewdidload 的那部分在串行队列(同步)上运行。强制其余部分在开始下一行之前等待身份验证过程完成。但这实际上行不通。行按顺序开始,但仍未按顺序结束。

奇怪的是,如果我只是请求权限而不对其进行任何操作,没有 completionHandler(如下面的代码),那么他会在第二次运行时运行它,我使用 completionHandler 完美地运行它,尽管它仍然没有显示给用户的警报。这可能是因为在欧洲录制视频不需要许可吗? avcapturedevice ref

如果我想让代码逐行执行,我需要使用屏障吗?或同步串行队列的或??

AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo, completionHandler: { nil }())

更新:

这种方法应该是非常安全的,但事实并非如此。它返回 true 是理所当然的,但 rawValue 返回 3(拒绝)

func checkForAuthorizationStatus() {
println("auth me")
AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo, completionHandler: {
granted in
if granted {
println("granted: \(granted)")
self.deviceAuthorized = true
println("raw value: \(AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo).rawValue)")
} else {
self.deviceAuthorized = false
}

})
}

更新 2:在下面的评论中回答。- 重置设备上的隐私设置以获取请求。

  • 授权的原始值是 3 而不是 4

最佳答案

如果它需要很长时间才能出现,那么听起来你没有在主线程上运行它,而你应该在主线程上运行它。此外,如果它之前提示过一次,则不会再次提示 - 用户必须进入“设置”并启用相机访问权限。

关于swift - requestAccessForMediaType 不请求许可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28214262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com