但是我们现在如何确定设置了哪个照片库访问级别?
[PHPhotoLibrary authorizationStatus]
仅适用于“读写”权限检查。如果应用仅要求“仅添加照片”权限,则它会保留PHAuthorizationStatusNotDetermined
。如果用户将其从“读写”更改为“仅添加照片”,则会给出PHAuthorizationStatusDenied
.
那么,我如何判断我的应用程序是否有权执行“导出到相机胶卷”功能,而该功能不需要读取权限?
但是我们现在如何确定设置了哪个照片库访问级别?
[PHPhotoLibrary authorizationStatus]
仅适用于“读写”权限检查。如果应用仅要求“仅添加照片”权限,则它会保留PHAuthorizationStatusNotDetermined
。如果用户将其从“读写”更改为“仅添加照片”,则会给出PHAuthorizationStatusDenied
.
那么,我如何判断我的应用程序是否有权执行“导出到相机胶卷”功能,而该功能不需要读取权限?
从 iOS 11 开始,为了只获得写入权限,您需要NSPhotoLibraryAddUsageDescription
在info.plist中添加。如果您想检查用户是否允许您这样做,就会出现这里的问题。它不能通过该[PHPhotoLibrary authorizationStatus]
方法完成,因为这会调用读/写弹出窗口(您也需要NSPhotoLibraryUsageDescription
在info.plist中拥有)。
如果您想检查用户是否授予您的应用程序写入权限,您必须调用UIImageWriteToSavedPhotosAlbum
(如果您想将数据添加到图库,我猜您已经调用了),这会给您一个回调,告诉您保存是否有效,但更重要的是它会向用户显示您的NSPhotoLibraryAddUsageDescription
文本。
现在,为了确保您可以访问两者,您应该将两者都添加NSPhotoLibraryAddUsageDescription
并NSPhotoLibraryUsageDescription
添加到您的info.plist并定期检查 PHPhotoLibrary,如果失败,那么您只能检查何时要保存数据带着 去图书馆UIImageWriteToSavedPhotosAlbum
。
我想说你只能检查,UIImageWriteToSavedPhotosAlbum
但你需要实际将图像保存到用户画廊才能做到这一点,这很hacky,这是不可以的。