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

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

事实上,自 Android 11 起,谷歌就引入了更严格的隐私和安全限制,其中一项关键变化就是限制普通应用(非系统应用)对 /data 目录的直接访问。这意味着,应用通常只能访问和修改自己私有空间内的文件。要想访问音乐、照片等媒体库文件,必须请求用户授予 READ_MEDIA_IMAGES、READ_MEDIA_VIDEO 等权限,并通过 MediaStore API 进行操作。
那么,美团App为何拥有删除用户照片的“能力”?这与其业务功能有关。大约在2022年,美团App引入了短视频功能,位于首页的菜单入口中。为了让用户能够上传拍摄好的短视频,应用自然需要请求并获得访问并修改媒体库的权限。从技术上讲,任何被授予了媒体文件存储(写)权限的应用,都具备了删除你相册中照片和视频的潜在能力。

美团是故意删除用户照片的吗?这个可能性其实非常低。对于互联网厂商而言,分析用户相册内容以完善用户画像、进行精准广告推送或许存在动机,但主动破坏用户个人数据则是有百害而无一利的违法行为。前者或许游走在法律边缘,后者则是明确违规。
根据多位Android开发者的分析,问题的根源更可能在于美团的开发实践没有严格遵守规范。Android 10 开始就要求应用使用 MediaStore API 来访问照片、视频和音乐文件,但许多深度依赖基于原始文件路径(File Path)API的遗留代码或第三方库,很难平滑切换到使用文件描述符(File Descriptor)的 MediaStore 方式。
从 Android 11 开始,谷歌禁止应用直接访问 /data 目录,这导致许多开发者为了“省事”,采用了一种取巧的方案:将那些依赖原始文件路径的输入/输出请求,通过某种方式重定向到使用 MediaStore API,或者干脆将应用内的某些媒体文件映射到公共媒体库中。

这时,一旦出现多个SDK(软件开发工具包)试图修改同一部分代码或资源,或者与工程中引入的其他第三方库发生冲突,就可能导致应用出现意料之外的BUG。原本旨在清理私有目录下缓存文件的逻辑,可能因为路径映射错误,而被执行成了清理 DCIM 或 Pictures 目录。
简而言之,“美团删照片”事件大概率是一次典型的代码质量与架构缺陷问题。但作为头部互联网公司,美团的这次疏漏反映了一个令人不安的事实:他们可能并未将用户数据安全置于最高优先级。因为针对“拥有媒体库权限的应用可能误删照片”这一问题,谷歌其实早已在 Android 13 及后续版本中提供了针对性的解决方案——照片选择器。
在 Android 14 上,谷歌引入了一个作为“中间层”的系统级照片和视频选择界面。这个选择器提供了支持多选和预览的媒体文件面板,用户无需授予应用访问整个媒体库的权限,而可以仅选择特定的照片或视频供应用使用。
同时,为了强制开发者遵守新规,谷歌设计了 READ_MEDIA_VISUAL_USER_SELECTED 权限。该权限由系统自动管理,无论应用是否针对 Android 14 进行适配,都会被自动添加到应用的清单中。当用户通过照片选择器授予访问特定媒体文件的权限时,应用实际上只拥有对这些选定文件的临时访问权。

这样一来,即使用户需要上传照片,App也只能通过系统弹窗让用户选择具体文件,而无法直接遍历和操作整个相册。即使App自身出现BUG,其破坏范围也被严格限制在用户本次会话所选定的少数文件内,从而避免了“删光整个相册”的灾难性后果。
然而,这个优秀的功能有一个前提条件:只有应用适配 Android 14 (API 级别 34) 或更高版本时,才能启用这项变更。目前,Google Play 的政策是自2025年8月31日起,新应用和应用更新必须以 Android 15 (API 级别 35) 为目标平台。相比之下,国内主流应用商店对应用的目标API级别要求,通常还在大于等于 30(对应 Android 11)。

这意味着,在 Google Play 上架的国际版美团App(目标API 35)很可能已经适配了“限制访问照片与视频”的新特性,会调用照片选择器。而在国内应用商店上架的版本(目标API 30)则可能仍在使用旧式的全局存储权限请求方式,系统会提示“该应用未适配相关功能”。换言之,如果美团将国内版本的目标API级别也提升到 35 并遵循新规范,这次的照片误删事件或许根本就不会发生。
这起事件不仅是一个技术BUG,更是对国内Android应用开发规范与数据安全意识的拷问。当便捷性开发习惯凌驾于用户隐私安全规范之上时,类似的“意外”就很难彻底避免。对于开发者而言,紧跟系统迭代、严格遵守最佳实践,才是对用户数据最基本的尊重。对于此类涉及用户核心数据安全的技术话题,欢迎大家在 开发者广场 进一步交流与探讨。