权限被拒绝后可以访问照片库和相机

Posted

技术标签:

【中文标题】权限被拒绝后可以访问照片库和相机【英文标题】:Photo Library and Camera are accessible after permission got denied 【发布时间】:2019-05-28 14:09:22 【问题描述】:

我目前正在开发一个应用程序,我需要访问照片库或相机(甚至两者,这取决于用户)。

如果我关闭应用程序并拒绝该应用程序访问相机和库。

重新启动我的应用程序后,仍然可以访问两者,我可以打开并使用相机,甚至可以从库中选择一张照片。 这怎么可能,我还以为苹果会限制访问呢。

【问题讨论】:

我还认为他们会限制访问,但您还应该检查权限并在需要的地方/时间提示 您如何以编程方式检查他们的权限选择? @KSigWyatt 通常您会从 info.plist 文件中获得带有上下文的警报。我只是想知道访问被拒绝,但苹果仍然让应用程序使用相机,例如 【参考方案1】:

我不这么认为。如果访问被拒绝,Apple 总是会限制使用相机或照片库。请使用以下代码检查当前状态并进行验证。

    import Photos

    if type == .CAMERA

        if AVCaptureDevice.authorizationStatus(forMediaType: AVMediaTypeVideo) ==  AVAuthorizationStatus.authorized 
            completionHander(true) //Allowed
         else 
            //Dont Know
            AVCaptureDevice.requestAccess(forMediaType: AVMediaTypeVideo, completionHandler:  (granted: Bool) -> Void in
                completionHander(granted)
            )
        
    else
        let status = phphotoLibrary.authorizationStatus()
        switch status 
        case .authorized:
            completionHander(true)//Allowed
            break
        case .denied, .restricted :
            completionHander(false)//Not Allowed
            break
        case .notDetermined:
            //Dont Know
            PHPhotoLibrary.requestAuthorization  status in
                switch status 
                case .authorized:
                    completionHander(true)
                    break
                case .denied, .restricted:
                    completionHander(false)
                    break
                case .notDetermined:
                    completionHander(false)
                    break
                
            
        
    

【讨论】:

这就是我现在正在做的,但我认为它会受到Apple的限制。 你能分享一下你的应用设置截图吗?【参考方案2】:

好吧,我知道答案了... 我只是没有得到这个概念。 如果我拒绝访问 photoLibrary,则无法保存图像,但如果授予相机访问权限,我仍然可以使用 photoLibrary。 如果相机访问被拒绝,我仍然会从 info.plist 中收到带有上下文的警报

【讨论】:

以上是关于权限被拒绝后可以访问照片库和相机的主要内容,如果未能解决你的问题,请参考以下文章

在 config.xml 中设置使用说明后,Ionic IOS 相机权限仍然被拒绝

flutter ios 照片权限总是返回权限被永久拒绝

微小宝上传照片显示没有权限访问目标请求

“对路径的访问被拒绝.” 是怎么回事

Amazon S3 上传访问被拒绝

Instagram API 权限被拒绝 - 无效用例?