自己辛辛苦苦攒下的照片、视频,一夜之间被美团清空了!最近几天,不少网友在微博、小红书等社交平台上反馈,在未进行任何操作的情况下,手机相册里数百至数千张照片和视频被自动清空,而系统拦截日志则显示,执行这一操作的应用是美团App。

旋即#美团删照片#这个话题登上微博热搜榜。对此,美团客服方面在3月24日做出回应,“该问题主要是安卓系统在极少数情况下,App自动缓存清理时遇到第三方SDK冲突导致异常。问题发生后至今,累计有180多位用户进线客服咨询,预计潜在波及用户范围约在数百人。我们在发现该问题后已第一时间进行紧急修复。”
那么问题就来了,App自动缓存清理时遇到第三方SDK冲突,为何会删掉用户相册里的照片或视频呢?毕竟App的缓存文件存在私有目录,用户的照片和视频则是存储在media store(媒体库)的DCIM/和Pictures/目录,两者路径完全不同。如果开发者严格遵照谷歌的Android开发者指南,那么App执行缓存清理时自然就无法触及到这些文件。

在Android 11中,谷歌引入了更严格的隐私和安全限制,其中一个重要的变化就是限制普通应用(非系统应用)对/data目录的直接访问。如此一来,App就只能访问和修改自己拥有的文件(/data/media/{user}/android),要访问音乐或照片等媒体库文件,就必须请求用户给予取READ_MEDIA_IMAGES、READ_MEDIA_AUDIO权限,并使用MediaStore API。
要知道在2022年时,美团App引入了短视频功能,入口位于首页的菜单入口中,所以自然就需要用户授予访问并修改媒体库的权限,才能让用户上传拍好的短视频。所以从理论上来说,每一个被授予了媒体文件存储权限的App,都能把你的照片、视频删除。
那么美团是故意删除你的照片或视频的吗?这个可能性其实微乎其微,毕竟美团等互联网厂商最多也只是想分析你的相册内容,从而完善用户画像,更精准地向你推送广告而已,破坏用户个人数据的勾当对他们没有任何好处。而前者只能算打法律的擦边球,后者则是妥妥的违法行为。

按照多位Android开发者的分析,美团可能主观上不想删除用户的照片或视频,可奈何他们没有准确遵守谷歌的Android开发者指南。Android 10中要求所有应用都使用MediaStore API来访问照片、视频和音乐文件,但深度依赖基于原始文件路径的API和第三方库很难切换到使用文件描述符 (File Descriptor) 。
再加上从Android 11开始,谷歌禁止App对/data目录的直接访问,所以就有相当多的开发者为了省事,直接将依赖原始文件路径的I/O请求重定向到使用MediaStore API,或者是干脆将应用内的媒体文件映射到公共媒体库。

这时候一旦出现多个SDK试图修改同一部分代码或资源,或者与开发者自己工程中的第三方库冲突,导致App出现BUG,那么明明想要执行清理私有目录下来的缓存文件,就可能会被执行成了清理DCIM/目录。
简而言之,“美团删照片”事件大概率属于典型的代码质量问题,但作为头部互联网大厂,美团的漫不经心恰恰反映了一个扎心的事实,那就是他们可能根本就没拿用户的数据当回事。因为针对获取媒体库存储权限的App可能误删照片这件事,谷歌方面早在Android 13就拿出了针对性的解决方案,即照片选择器功能。
为了做到这一点,在Android 14上谷歌引入了一个让用户为App选择可见媒体文件的“中间层”。这个中间层提供照片和视频选择面板,内含支持多选和长按预览的多媒体文件,以及可以按照路径位置查找媒体文件的“影集”这两个页面。
同时为了保证开发者必须遵守规则,谷歌还设计了READ_MEDIA_VISUAL_USER_SELECTED权限。该权限是由系统自动附加,且无论应用是否面向Android 14进行适配, 这一权限都会被自动添加到应用的声明清单中。

通过照片选择器功能,用户可以仅向App授予对所选图片和视频的访问权限,而不是整个媒体库的访问权限。当App需要用户上传照片时,系统就会弹出一个缩略版的相机界面,让用户自己选择上传哪张照片。当App只能访问特定的照片时,它即使出了BUG也删不了整个照片库。
虽然照片选择器这个功能很好,但唯一的问题,就在于只有App适配Android 14 (API级别34) 以上版本时才能启用这项变更。Google Play的政策是自2025年8月31日起,新的App和应用更新必须以Android 15(API级别35)或更高版本才能提交,而国内主流应用商店的API级别要求,则是大于等于30。

也就是说,在Google Play上架的美团App(API 35)适配了“限制访问照片与视频”,而在国内应用商店的版本(API 30)则提示该应用未适配相关功能。换而言之,如果美团将在国内应用商店上线的版本也提升到API 35,有了照片选择器后,这次的事件可能压根就不会发生。
【本文图片来自网络】
