检查隐私 - 仅在 iOS 中的照片库添加使用说明

Posted

技术标签:

【中文标题】检查隐私 - 仅在 iOS 中的照片库添加使用说明【英文标题】:Checking for Privacy - Photo Library Additions Usage Description only in iOS 【发布时间】:2019-04-25 21:45:19 【问题描述】:

我的应用只需要 plist 文件中的“隐私 - 照片库添加使用说明”属性(应用写入照片库,但不读取)。

我使用此代码检查权限:

phphotoLibrary.requestAuthorization  status in

            if status == .authorized 
                print("Permission granted")
             else 
                print("Unavailable")
            

        

在我的应用程序的 ios 设置中,即使 plist 只需要“仅添加照片”,也列出了“读取和写入”(??),并且上面的代码只有在“读取和写入”时才会获得授权状态' 被勾选(勾选 'Add Photos Only' 只会导致上面的代码通过 else 语句)。

当我的 plist 不包含“隐私 - 照片库使用说明”时,为什么“读写”甚至被列为我的应用程序的设置,我有点困惑。

有什么想法吗?

【问题讨论】:

【参考方案1】:

因为你打电话给PHPhotoLibrary.requestAuthorization

如果您只需要盲目地写入用户的相机胶卷,请不要致电PHPhotoLibrary.requestAuthorization。继续写吧,例如通过调用 UIImageWriteToSavedPhotosAlbum 或 UISaveVideoAtPathToSavedPhotosAlbum。运行时将代表您请求授权。

但如果您想与照片库本身进行交互,即通过照片框架,那么您需要授权并在隐私 - 照片库使用说明下输入一个条目,即使您打算做的只是写。


从您的 cmets 来看,您可能对 requestAuthorization 的作用感到困惑。它试图获得权限。如果您只想知道当前的授权状态实际上是什么,请致电authorizationStatus

然而,即便如此,我们还是在谈论照片库本身,因此在设置中称为读取和写入的值。

如果您想知道您是否有权执行 UIImageWriteToSavedPhotosAlbum 或 UISaveVideoAtPathToSavedPhotosAlbum,请继续调用它。如果存在权限问题,您会在完成处理程序中听到。

【讨论】:

我只需要知道用户是否已授予对库的写入权限 - 是否没有其他可以使用的调用? 如果您只想询问状态是什么,请致电authorizationStatus()。但你要问的是读写。 如果您想知道您是否拥有 UIImageWriteToSavedPhotosAlbum 或 UISaveVideoAtPathToSavedPhotosAlbum 的权限,只需拨打电话,如果存在权限问题,您将在完成处理程序中得到通知。 我一直希望能摆脱这个过程:1) 检查是否授予“隐私 - 照片库添加使用说明”。 2) 如果没有,提示用户访问/更新他们的设置。 3) If permission granted, create image, share it to the ActivityViewController, and when 'save to camera roll' is selected, assume that image would have been saved okay (then I'd display 'Saved' success message).显然,这个程序流程行不通,做了一些假设,会重新考虑。感谢您的帮助。 对,好吧,如果你需要提前知道你是否才能获得权限,从而决定是否启动一个复杂的操作,那么您需要使用 Privacy - Photo Library Usage Description、authorizationStatusrequestAuthorization(用户将看到 Read & Write)。你不能做你在这里假设的事情;比如Privacy - Photo Library Additions Usage Description 不能提前检查,也不能提前提示这种权限。

以上是关于检查隐私 - 仅在 iOS 中的照片库添加使用说明的主要内容,如果未能解决你的问题,请参考以下文章

ALAssetLibrary ,它仅在某些设备上的所有照片中显示部分照片

iOS14 隐私适配及部分解决方案

Ios Swift:删除图像数组中的重复项

应用程序无法访问您的照片或视频 iOS 9

Objective C: iOS 14 如何做网络隐私权限检查

在检测到隐私设置更改时让应用程序自行重启