首页 > 解决方案 > 照片授权状态的隐私设置始终返回未确定

问题描述

背景

我正在尝试使用以下代码确定隐私设置的状态以保存到照片,目标是 iOS 10 到 iOS 14。

但是在模拟器中,无论应用程序选择什么隐私设置,返回的“authorizationStatus”总是“notDetermined”。

我本来希望隐私设置“仅添加照片”返回“授权”,而“无”返回“拒绝”。

更新

从 获取隐私状态似乎存在问题 PHAccessLevel.addOnly,而从 获取隐私状态 PHAccessLevel.readWrite可以正常工作。

为此,隐私状态始终显示为“未确定”:

if #available(iOS 14, *) {
PHPhotoLibrary.requestAuthorization(for: PHAccessLevel.addOnly) { _ in

隐私状态显示了预期结果:

if #available(iOS 14, *) {
PHPhotoLibrary.requestAuthorization(for: PHAccessLevel.readWrite) { _ in

但我不知道为什么会这样……


问题

这是 iOS 模拟器的怪癖,还是我的代码有问题,如果有,我该如何纠正?


代码

import Photos

func authorizationStatusPhotos() {

        if #available(iOS 14, *) {
             PHPhotoLibrary.requestAuthorization(for: PHAccessLevel.addOnly) { _ in

        switch PHPhotoLibrary.authorizationStatus() {

        case .notDetermined:
            print ("notDetermined")

        case .restricted:
            print ("restricted")

        case .denied:
            print ("denied")

        case .authorized:
            print ("authorized")

        case .limited:
            print ("limited")

        default:
            print ("default")

        }
    
        }

        }    

}

图片

在此处输入图像描述

标签: iosswiftoptimizationauthorizationprivacy

解决方案


对于那些仍在寻找答案的人:您应该获得与PHAccessLevel请求照片授权相同的授权状态,例如

PHPhotoLibrary.requestAuthorization(for: PHAccessLevel.addOnly)
...
PHPhotoLibrary.authorizationStatus(for: .addOnly)

PHPhotoLibrary.authorizationStatus()返回读/写权限的状态,在 iOS 15中已弃用。


推荐阅读