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