近期社交网站上有用户发帖表示安卓QQ悄悄删除自己的照片,该行为被华为手机内置安全策略拦截并弹出提示。

作为即时通讯软件那么QQ为何会偷偷删除用户照片呢?经过排查腾讯官方发布消息称只是删除缓存的图片而已。

安卓QQ在系统目录下生成多个文件夹,其中部分文件夹用于存储各种缓存内容并且在一定时间内会自动清除等。

当这些缓存目录里存在图片类的文件时若尝试清除则华为手机会弹出对应的拦截提示,告知用户有照片遭到删除。




android 提示自动消失_安全策略


腾讯发布说明解释该问题:

腾讯表示用户使用QQ保存的图片类文件会存储在相册中,这些不属于缓存文件因此腾讯QQ也不会自动执行删除。

腾讯工程师针对用户反馈已经进行多次测试证实被清除的只有缓存目录中的文件,该目录可能包含各种图片缓存。

由于华为手机内置的安全策略问题导致QQ尝试自动清除缓存时遭到拦截,即系统误以为是QQ正在私自删除照片。

而实际上各种APP在日常使用中都会产生大量的缓存内容,定期清除这些缓存内容有助于腾出空间降低空间占用。

此外腾讯还强调在执行图片保存动作时会先把临时的空文件删除再写入真正的图片,这个步骤就会触发安全策略。

最后腾讯表示将与华为共同优化该功能为用户提供更好的使用体验。

华为:你别找我啊

过去经常有用户反馈手机上的图片莫名丢失,我们最终分析到的原因是某些应用可能自动删除手机上保存的图片。

尽管这种情况不一定是恶意行为例如有些应用会定期清除过期图片,但只要图片被用户看到又消失就会怪罪手机。

为解决用户这种疑惑我们在EMUI9.0版上增加图片视频删除保护,只要有应用删除除图库目录下的图片就会提示。

除手机顶部会弹出拦截删除提示外系统还会将图片放到回收站里,因此用户也可以从回收站里回复这些被删图片。

如果第三方应用不想让缓存图片被用户在系统图库里看到,应遵循安卓开发规范为缓存目录添加 .nomedia 属性。

添加该属性后应用的缓存图片或视频就不会被系统扫描到,应用自己执行定期清除缓存或其他操作时也不会拦截。

看起来像是腾讯开发过程中的黑锅:

华为这种添加拦截删除的安全策略虽说可能会引起误解但却是有必要的,不然用户图片被删总是认为是手机问题。

而安卓系统确实支持 .nomedia 这种属性,这个属性主要是谷歌考虑存储类模块自动扫描整个存储空间而预留的。

正常情况下系统重启、热插拔SD卡和连接电脑等牵涉文件系统的操作时,系统均会重新扫描存储空间归档数据库。

这个数据库会保存所有的多媒体内容的信息,应用如图库读取多媒体内容时可直接调用该数据库来罗列所有内容。

有时候应用或者游戏的缓存信息例如广告图片、介绍视频、游戏图标等不想被系统扫描时就需要使用 .nomedia 属性。

当缓存位置被设置为该属性后安卓系统扫描时不会索引其中的内容,因此在图库等图片应用里也看不到对应内容。

按这么个说法那此次华为手机拦截安卓QQ删除照片事件确实该腾讯自己背锅,毕竟确实没有遵循安卓开发规范。