OGeek|极客世界-中国程序员成长平台

标题: iOS,如何知道照片是否是用户截取的屏幕截图?如何删除照片中的照片? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 17:38
标题: iOS,如何知道照片是否是用户截取的屏幕截图?如何删除照片中的照片?

在AppStore(中国),一款名为腾讯手机管家的App发布了一系列与照片相关的功能,包括检测照片是否为用户截图、删除照片等功能。

我在这里截取了这个应用程序的截图来演示我的问题(我自己为你添加了英文文本,因为该应用程序只显示中文):

This app knows what photos are screenshots and what not

当你点击底部的删除按钮时,它会显示:

Asking permission from user to delete photos

据我所知,iOS 中的 Photo API(AssetsLibrary、PHPhotoLibrary)没有给出照片的绝对路径,iOS SandBox 也不允许应用删除用户的 Assets ,这使得删除用户的照片几乎不可能的。 iOS 设备中保存的所有照片都遵循相同的命名系统:“IMG_001.jpg”,这使得无法从其名称中检测照片是否为截图。

但显然,这个应用程序实现了这两个功能。有人对此有任何想法吗?

谢谢!



Best Answer-推荐答案


您可以使用 PHAsset 的 mediaSubtypes 进行检查属性。

let types = phAsset.mediaSubtypes /// phAsset is a PHAsset
let isScreenshot = types.contains(.photoScreenshot) /// true if is screenshot

关于iOS,如何知道照片是否是用户截取的屏幕截图?如何删除照片中的照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39698484/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4