swift – requestAccessForMediaType不要求权限
发布时间:2020-12-14 04:24:59 所属栏目:百科 来源:网络整理
导读:我注意到我的应用程序没有请求使用相机的权限.经过一些实验,我发现用于检查权限的代码片段需要很长时间才能完成.所以我想让我的viewdidload的那部分运行在串行队列(sync)上.在开始下一行之前强制其余部分等待auth进程完成.但这并没有真正起作用.这些行按顺序
我注意到我的应用程序没有请求使用相机的权限.经过一些实验,我发现用于检查权限的代码片段需要很长时间才能完成.所以我想让我的viewdidload的那部分运行在串行队列(sync)上.在开始下一行之前强制其余部分等待auth进程完成.但这并没有真正起作用.这些行按顺序开始,但仍然没有按顺序完成.
奇怪的是,如果我只是要求权限并且不执行任何操作,没有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:在下面的评论中回答. >授权的rawValue是3而不是4 解决方法
如果它需要很长时间才能出现,那么听起来你并没有在主线程上运行它,你应该这样做.此外,如果它曾提示过一次,则不会再次提示 – 用户必须进入“设置”并启用相机访问权限.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |