Android应用移至SD卡时是否需申请外部存储权限?
Android应用迁移至SD卡是否需要外部存储权限?
核心结论:将应用迁移/安装到SD卡本身不需要额外申请外部存储权限,但具体权限需求取决于你要访问的文件位置,且不同Android版本有细微差异:
Android 10(API 29)及以上版本
- 应用被迁移到SD卡后,系统会为其分配一个沙箱化的专属目录,应用对该目录内的文件进行读写操作,无需申请
READ_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE权限。 - 只有当你需要访问SD卡上的公共媒体目录(如DCIM、Downloads)或其他应用的沙箱文件时,才需要对应权限(或使用MediaStore API进行访问)。
Android 9(API 28)及更低版本
- 应用安装到SD卡后,读写自身专属目录的操作不需要额外权限,系统会自动授予该目录的访问权限。
- 若要访问SD卡的公共区域或其他应用的文件,则必须申请
READ_EXTERNAL_STORAGE/WRITE_EXTERNAL_STORAGE权限。
额外注意事项
- 要允许应用被用户迁移到SD卡,你需要在
AndroidManifest.xml中声明安装位置属性,示例如下:<application ... android:installLocation="preferExternal"> <!-- 可选值:preferExternal/auto/onlyInternal --> ... </application>preferExternal:优先安装到外部存储auto:系统自行决定安装位置onlyInternal:仅安装到内部存储(无法迁移到SD卡)
- 应用在SD卡上的专属目录是私有的,其他应用无法访问,因此无需担心数据泄露问题,也不需要额外权限来管控这部分访问。
内容的提问来源于stack exchange,提问作者Joana
相关产品推荐
相关产品推荐

