Android 11系统下如何在/Android/media路径下创建文件夹?
Android 11及以上系统在
/Android/media路径创建文件夹的方法 Android 11开始引入分区存储机制,禁止普通应用和用户直接访问/Android、/Android/data、/Android/media这类系统级目录的读写权限,过往直接通过第三方文件管理器访问创建的方式已经失效,你可以根据自己的使用场景选择对应方案:
场景1:普通用户手动创建文件夹
- 优先使用系统自带的原生文件管理器操作:大部分厂商的原生文件管理器已经被授予特殊访问权限,可以直接进入
/Android/media路径,长按空白处选择新建文件夹即可。 - 若第三方文件管理器无法访问,可以到系统设置的「应用-特殊应用权限-所有文件访问权限」中,给对应文件管理器开启该权限,之后即可正常访问路径创建文件夹。
- 部分厂商定制系统如果进一步限制了路径访问,可通过ADB命令操作:
- 开启手机USB调试,连接电脑后打开命令行工具
- 执行命令进入对应路径:
adb shell cd /storage/emulated/0/Android/media - 执行创建文件夹命令:
adb shell mkdir 你的文件夹名称
场景2:应用开发者让自己的App在该路径创建文件夹
- 如果只需创建应用专属的媒体目录(和WhatsApp的实现逻辑一致):不需要申请全文件权限,直接通过
context.getExternalMediaDirs()接口获取系统分配的/Android/media/[你的应用包名]路径,直接在该路径下操作即可,应用卸载后该目录也会同步被系统清理。 - 如果需要在
/Android/media下创建非自身应用包名的目录:- Android 13及以上:需要在
AndroidManifest.xml中申请READ_MEDIA_IMAGES、READ_MEDIA_VIDEO、READ_MEDIA_AUDIO对应媒体权限,同时申请MANAGE_EXTERNAL_STORAGE权限,引导用户到设置页开启「所有文件访问权限」。 - Android 11-12:需要申请
READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限,同样需要申请MANAGE_EXTERNAL_STORAGE权限才可以写入非自身包名的目录。
- Android 13及以上:需要在
注意:如果应用需要上架Google Play,申请
MANAGE_EXTERNAL_STORAGE权限需要符合Google Play政策要求,只有文件管理器、备份类等确实需要全存储访问的应用才可以通过审核。
内容的提问来源于stack exchange,提问作者Dulaj Madusanka
相关产品推荐
相关产品推荐

