【问题标题】:Detect add photos only permission检测仅添加照片权限
【发布时间】:2018-03-02 16:10:47
【问题描述】:

在 ios 11 中,我们现在有“仅添加照片”权限设置。

但是我们现在如何确定设置了哪个照片库访问级别? [PHPhotoLibrary authorizationStatus] 仅适用于“读写”权限检查。如果应用程序仅要求“仅添加照片”权限,则它保持PHAuthorizationStatusNotDetermined。如果用户将其从“读写”更改为“仅添加照片”,则会给出PHAuthorizationStatusDenied

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

【问题讨论】:

  • 这里有同样的问题。有什么运气吗?
  • @Daniel Tranca 据我所知,在 ios11 中没有办法知道我们可以写入照片库而不实际尝试这样做并检查错误(例如,使用 UIImageWriteToSavedPhotosAlbum 回调作为 mikebld建议)。不幸的是,如果设备拒绝了对库的权限,我总是禁用“导出到相机胶卷”按钮。现在,如果导出尝试不成功,我必须始终显示它并返回一些错误警报。

标签: ios ios11 phphotolibrary


【解决方案1】:

从 iOS 11 开始,为了获得仅写入权限,您需要在 info.plist 中添加 NSPhotoLibraryAddUsageDescription。 如果您想检查用户是否允许您这样做,就会出现这里的问题。它不能通过[PHPhotoLibrary authorizationStatus] 方法来完成,因为这会调用读/写弹出窗口(并且您的info.plist 中也需要有NSPhotoLibraryUsageDescription)。

如果您想检查用户是否授予您的应用写入权限,您必须调用 UIImageWriteToSavedPhotosAlbum(如果您想向图库添加数据,我猜您已经调用了它),这给出了你一个回调告诉你保存是否有效,但更重要的是它向用户显示你的NSPhotoLibraryAddUsageDescription文本。

现在,为了确保您可以访问两者,您应该将 NSPhotoLibraryAddUsageDescriptionNSPhotoLibraryUsageDescription 添加到您的 info.plist 并定期检查 PHPhotoLibrary,并且如果失败,那么您只能使用UIImageWriteToSavedPhotosAlbum 检查何时要将数据保存到库中。

我想说您只能使用UIImageWriteToSavedPhotosAlbum 进行检查,但您需要将图像实际保存到用户库中才能做到这一点,这很麻烦,这是不行的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-15
    • 2020-03-19
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    相关资源
    最近更新 更多