【发布时间】:2014-08-05 18:25:43
【问题描述】:
在我的一个应用程序中,我正在访问 SD 卡中的一些文件。我正在使用以下函数来确定挂载的 sd 卡路径。
File file = new File("/system/etc/vold.fstab");
FileReader fr = null;
BufferedReader br = null;
String path = "";
try {
fr = new FileReader(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
if (fr != null) {
br = new BufferedReader(fr);
String s = br.readLine();
while (s != null) {
if (s.startsWith("dev_mount")) {
String[] tokens = s.split("\\s");
path = tokens[2]; //mount_point
}
s = br.readLine();
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fr != null) {
fr.close();
}
if (br != null) {
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return path;
这适用于 Kitkat 之前的所有设备。但在 Kitkat 版本中,我在第 1 行得到 FileNotFoundException,
File file = new File("/system/etc/vold.fstab");
我在 Android kitkat 版本中发现了很多关于更新 sd 卡权限的文章。但仍然对此有点困惑...... 请问谁能帮我解决一下???提前谢谢...
【问题讨论】:
-
如果您想要一张实际的(可移动的)SD 卡,那么在 4.4+ 上您需要为此使用新的标准 API。如果您需要外部存储,其现有 API 将继续工作。
-
我查看了关于外部存储的最新 android kitkat 文档,它们只是解释了 getExternalFilesDirs() 方法。你能给我任何关于新 api 的线索吗??
标签: java android android-sdcard