作者:sunhuan | 来源:互联网 | 2023-01-17 13:55
在ios 11中,我们现在有"仅添加照片"权限设置.
但是我们现在如何确定设置了哪个照片库访问级别?
[PHPhotoLibrary authorizationStatus]
仅适用于"读写"权限检查.如果应用仅询问"仅添加照片"权限,则会保留该权限PHAuthorizationStatusNotDetermined
.如果用户将其从"读取和写入"更改为"仅添加照片",则会给出PHAuthorizationStatusDenied
.
那么,我如何判断我的应用是否有权执行"导出到相机胶卷"功能,这不需要读取权限?
1> 小智..:
从iOS 11开始,为了仅获得写入权限,您需要NSPhotoLibraryAddUsageDescription
在info.plist中添加。如果您要检查用户是否允许您这样做,就会出现问题。无法通过该[PHPhotoLibrary authorizationStatus]
方法完成操作,因为该方法会调用读/写弹出窗口(并且您也需要NSPhotoLibraryUsageDescription
在info.plist中包含该弹出窗口)。
如果要检查用户是否为您的应用授予了写权限,则必须调用UIImageWriteToSavedPhotosAlbum
(我想如果您想向图库中添加数据,您已经调用了它),这将给您提供回调,告诉您如果保存成功与否,那么更大的事情是它向用户显示了您的NSPhotoLibraryAddUsageDescription
文本。
现在,为了确保您可以同时访问两者,您应该将两者都添加NSPhotoLibraryAddUsageDescription
并NSPhotoLibraryUsageDescription
添加到info.plist中,并使用PHPhotoLibrary进行常规检查,如果失败,则只能检查何时要保存数据带到图书馆UIImageWriteToSavedPhotosAlbum
。
我想说您只能通过进行检查,UIImageWriteToSavedPhotosAlbum
但是您实际上需要将图像保存到用户库中才能做到这一点,而且它很hacky,这是不行的。