ios - 照片授权状态的隐私设置始终返回未确定
问题描述
背景
我正在尝试使用以下代码确定隐私设置的状态以保存到照片,目标是 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")
}
}
}
}
图片
解决方案
对于那些仍在寻找答案的人:您应该获得与PHAccessLevel
请求照片授权相同的授权状态,例如
PHPhotoLibrary.requestAuthorization(for: PHAccessLevel.addOnly)
...
PHPhotoLibrary.authorizationStatus(for: .addOnly)
PHPhotoLibrary.authorizationStatus()
返回读/写权限的状态,在 iOS 15中已弃用。
推荐阅读
- java - 将 SQL 或 UTIL DATE 转换为预期格式“dd-MMM-yyyy”,但不是字符串值
- c# - 如何检查您的表单是否已经打开并关闭它
- inheritance - 覆盖并更改函数的中间部分 Odoo
- python-3.x - arcpy python3中Origin Destination Matrix Analyst的输出问题
- javascript - 决定 State Monad 中的状态和内容
- excel - 嵌套If条件VBA
- reactjs - 来自数据的 CircleMarker 多类名
- java - 只有 1 个 onClickListener 适用于谷歌地图活动中的标记
- java - 从java中的子文档获取父文档值
- android - 如何使用 MotionLayout 调整 TextView 的大小