菜鸟教程小白 发表于 2022-12-11 17:38:59

iOS,如何知道照片是否是用户截取的屏幕截图?如何删除照片中的照片?


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

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

<p> <a href="http://i.stack.imgur.com/IEC5I.jpg" rel="noreferrer noopener nofollow">This app knows what photos are screenshots and what not</a> </p>

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

<p> <a href="http://i.stack.imgur.com/YpBfc.jpg" rel="noreferrer noopener nofollow">Asking permission from user to delete photos</a> </p>

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

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

<p>谢谢! </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以使用 PHAsset 的 <a href="https://developer.apple.com/documentation/photokit/phasset/1624775-mediasubtypes" rel="noreferrer noopener nofollow"><code>mediaSubtypes</code></a> 进行检查属性。</p>
<pre><code>let types = phAsset.mediaSubtypes /// phAsset is a PHAsset
let isScreenshot = types.contains(.photoScreenshot) /// true if is screenshot
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于iOS,如何知道照片是否是用户截取的屏幕截图?如何删除照片中的照片?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/39698484/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/39698484/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS,如何知道照片是否是用户截取的屏幕截图?如何删除照片中的照片?