检测仅添加照片权限

Edg*_*Jan 8 ios phphotolibrary ios11

在ios 11中,我们现在有"仅添加照片"权限设置. ios 11照片设置

但是我们现在如何确定设置了哪个照片库访问级别? [PHPhotoLibrary authorizationStatus]仅适用于"读写"权限检查.如果应用仅询问"仅添加照片"权限,则会保留该权限PHAuthorizationStatusNotDetermined.如果用户将其从"读取和写入"更改为"仅添加照片",则会给出PHAuthorizationStatusDenied.

那么,我如何判断我的应用是否有权执行"导出到相机胶卷"功能,这不需要读取权限?

小智 6

从iOS 11开始,为了获得写入权限,您需要NSPhotoLibraryAddUsageDescriptioninfo.plist中添加。如果您要检查用户是否允许您这样做,就会出现问题。无法通过该[PHPhotoLibrary authorizationStatus]方法完成操作,因为该方法会调用读/写弹出窗口(并且您也需要NSPhotoLibraryUsageDescriptioninfo.plist中包含该弹出窗口)。

如果要检查用户是否为您的应用授予了写权限,则必须调用UIImageWriteToSavedPhotosAlbum(我想如果您想向图库中添加数据,您已经调用了它),这将给您提供回调,告诉您如果保存成功与否,那么更大的事情是它向用户显示了您的NSPhotoLibraryAddUsageDescription文本。

现在,为了确保您可以同时访问两者,您应该将两者都添加NSPhotoLibraryAddUsageDescriptionNSPhotoLibraryUsageDescription添加到info.plist中,并使用PHPhotoLibrary进行常规检查,如果失败,则只能检查何时要保存数据带到图书馆UIImageWriteToSavedPhotosAlbum

我想说您只能通过进行检查,UIImageWriteToSavedPhotosAlbum但是您实际上需要将图像保存到用户库中才能做到这一点,而且它很hacky,这是不行的。