如果我首先拒绝,则转到设置并允许设置,在两种情况下,状态均为不确定,而不是拒绝然后授权。 为什么会这样?
当我单击“不允许”时,它不会保存图像,但是状态变为.notDetermined而不是.denied。
保存后,我进入“设置”->“照片”,取消选中“从不”,然后选中“仅添加照片”。但是状态保持为.notDetermined,不会变为.authorized
func save(){
guard let image = imageView.image else {return}
UIImageWriteToSavedPhotosAlbum(image, self, nil, nil)
let status = PHPhotoLibrary.authorizationStatus()
switch status {
case .authorized:
print("authorized")
return
case .notDetermined:
print("not determined")
case .denied, .restricted:
print("denied or restricted")
//please go to settings and allow access
promptToSettings()
}
}
我请求将图像保存到照片库的权限。 用户首次尝试保存时,系统会询问他:“应用程序要添加到照片”“不允许”“确定” 如果用户拒绝,然后再次尝试保存,我想检查一下,如果状态为.denied,则提示用户进行设置并允许。 但是,当用户第一次不提供访问权限时,代码将转到.notDetermined块。即使在设置允许用户访问后,它仍保持.not确定。
答案 0 :(得分:2)
我下载了您的代码并运行了它。无论您说什么,我都能体会。它始终返回“不确定”状态。 我对您的代码做了进一步的分析。请在下面找到我的观察结果。
因此,看起来,我们需要先调用“ PHPhotoLibrary.requestAuthorization”方法来获取许可,而不是依赖于其他照片访问方法(如UIImageWriteToSavedPhotosAlbum)来获取许可。只有这样,“ PHPhotoLibrary.authorizationStatus”才能返回正确的状态。
另外一个附加信息: 即使删除并重新安装应用程序,其应用程序权限也会保留。只要看看这个。将来可能会帮助您解决类似问题。 iPad remembering camera permissions after delete—how to clear?
请告诉我这是否解决了您的问题。