【发布时间】:2018-02-20 21:50:08
【问题描述】:
一天中的大部分时间,我一直在寻找获取 SD 卡目录的方法。我最近发现函数调用getExternalStorageDirectory 在某些情况下会返回一个板载内存路径。我支持 API 19 及更高版本。 stackOverflow 给出的获取 SD 卡路径的常见答案是
Environment.getExternalStorageDirectory().getAbsolutePath();
这不适用于我的设备,因为返回的外部存储是不可移动内存(Samsung Tab S2)。
我已经能够使用getExternalFilesDirs 返回目录列表,在我的测试中它将返回两个目录,即应用程序的板载内存位置和我已安装的 SD 卡。然而函数调用 isExternalStorageRemovable 直到 API 21 才引入。这是我能找到的最明确的候选者,它可以满足我想要做的事情,即确保我实际上正在写入外部 SD 卡。
1) 有没有办法验证 getExternalFilesDirs 返回的目录在 API 19 中是可移动的还是外部的?
2) 是否可以假设,如果唯一的存储用例是“内部存储器”和“内部存储器和 SD 卡”,则 SD 卡位置将始终从 getExternalFilesDirs 返回第二个,就像我在简短测试中发生的那样?
【问题讨论】:
标签: android