删除 PHAsset 时禁用授权请求
Posted
技术标签:
【中文标题】删除 PHAsset 时禁用授权请求【英文标题】:Dsiable Authorization request when deleting PHAsset 【发布时间】:2015-12-30 16:21:46 【问题描述】:我有一个从相机胶卷中删除照片的应用程序。此擦除是远程启动的。因此,如果启动擦除并且用户不在他们的手机旁,他们将不会擦除,因为您需要授权删除每个图像。
现在我读到这在不同的问题中是不可能的。但是,当应用程序在第一次启动时完成加载时,是否可以像使用地理定位一样请求对手机照片库的授权。这是否会授予删除授权而无需对每张照片进行确认?
这就是我目前删除照片的方式,除了需要确认删除每张图片之外,它工作正常
PHFetchResult *asset = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:nil];
[asset enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
NSLog(@"%@",[obj class]);
[[phphotoLibrary sharedPhotoLibrary] performChanges:^
BOOL req = [obj canPerformEditOperation:PHAssetEditOperationDelete];
if (req)
NSLog(@"true");
[PHAssetChangeRequest deleteAssets:@[obj]];
completionHandler:^(BOOL success, NSError *error)
NSLog(@"Finished Delete asset. %@", (success ? @"Success." : error));
if (success)
NSLog(@"WIPE SUCCESSFUL");
];
];
【问题讨论】:
不知道这是干什么用的……嗯 【参考方案1】:如果没有确认警报,则无法通过提供的 API 删除任何照片/视频。没有办法解决这个问题。
【讨论】:
【参考方案2】:应用程序请求照片授权以获得对照片的访问权限。此权限是获取照片(应用程序可以复制设备中的所有照片,您希望任何应用程序都可以这样做吗?),而不是删除它们。
如果您想删除某些资产或收藏品,您必须每次都获得用户的特定授权。您只能与请求授权一起进行一些更改 - 但您必须至少与用户联系一次。
【讨论】:
以上是关于删除 PHAsset 时禁用授权请求的主要内容,如果未能解决你的问题,请参考以下文章
如何从 UIImagePickerController 获取授权的 PHAsset?