大多数新的 android 设备都有一个内部 sdcard 和一个外部 sdcard。我想制作一个文件资源管理器应用程序,但我无法找到如何获取在我的应用程序中使用的路径,因为
File file = Environment.getExternalStorageDirectory();
只是在大多数设备中返回 /mnt/sdcard
但对于其他外部 SD 卡还有另一条路径,如 /storage1 or /storage2
。任何帮助表示赞赏。
原文由 Mahmoud Jorban 发布,翻译遵循 CC BY-SA 4.0 许可协议
存储在内部存储中的方法:
以上方法存在于
Context
类中存储在手机内存中的方法:
一开始大家都用
Environment.getExternalStorageDirectory()
,指向手机内存 根目录。结果,根目录充满了随机内容。后来又增加了这两个方法:
在
Context
类中,他们添加了getExternalFilesDir()
,指向手机内存中特定于应用程序的目录。卸载应用程序时,该目录及其内容将被删除。Environment.getExternalStoragePublicDirectory()
用于集中存储众所周知的文件类型(如照片和电影)的地方。卸载应用程序时 不会 删除此目录及其内容。存储在可移动存储(即微型 SD 卡)中的方法
在 API 级别 19 之前,没有正式的方式存储在 SD 卡中。但许多人可以使用非官方 API 来做到这一点。
正式地,在
Context
API 级别 19 的类(Android 版本 4.4 - Kitkat)中引入了一种方法。这意味着,它将返回到 Micro SD 卡和内部存储器的路径。一般情况下, 第二个返回路径 是micro SD卡的存储路径。
根据谷歌/官方 Android 文档,内部和外部存储 术语 与我们的想法 大不相同。