我的应用仅需要plist文件中的“隐私-图片库添加用法说明”属性(应用会写入图片库,但不会读取)。
我使用以下代码检查权限:
PHPhotoLibrary.requestAuthorization { status in
if status == .authorized {
print("Permission granted")
} else {
print("Unavailable")
}
}
在我的应用程序的iOS设置中,即使plist仅需要“仅添加照片”,也会列出“读写”(??),并且如果“读写”,则上面的代码仅获得授权状态'被打勾(勾选“仅添加照片”只会使上面的代码进入else语句)。
当我的plist中不包含“隐私-图片库使用说明”时,为什么将“读写”列为我的应用程序有点困惑。
有什么想法吗?
答案 0 :(得分:0)
这是因为您正在呼叫PHPhotoLibrary.requestAuthorization
。
如果您只需要盲目地写到用户的相机胶卷中,请不呼叫PHPhotoLibrary.requestAuthorization
。只是继续写,例如通过调用UIImageWriteToSavedPhotosAlbum或UISaveVideoAtPathToSavedPhotosAlbum。运行时将代表您请求授权。
但是,如果您想与照片库本身进行交互,即通过“照片”框架进行交互,那么即使您打算做的只是写操作,也需要授权和“隐私-照片库使用说明”下的条目。
从您的评论来看,您可能对requestAuthorization
的操作感到困惑。它尝试获得权限。如果您只想知道当前实际上的授权状态是什么,请致电authorizationStatus
。
但是,即使到那时,我们仍在谈论照片库本身,因此也就是在“设置”中称为“读写”的值。
如果您想知道您是否有权执行UIImageWriteToSavedPhotosAlbum或UISaveVideoAtPathToSavedPhotosAlbum,请继续进行调用。如果有权限问题,您会在完成处理程序中听到它。