我无法找到运行所有设备并返回sdcard基本路径的方法。我找到了以下方法来获取具有过滤器“storage”的所有文件,然后检查它是否是外部文件。它在少数设备上运行良好。
File root = new File("/storage/");
File dirs[] = root.listFiles();
for (File dir : dirs) {
if (Environment.isExternalStorageRemovable(dir.getAbsoluteFile())) {
return dir.getPath();
}
}
现在我手里拿着一个设备,其sdcard路径是“roor / Removable / MicroSd,通过上面的代码,我无法读取这张卡片。我已经通过很多链接但是找不到标准方式。我也有试过以下,但这不会返回实际地址。
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
答案 0 :(得分:2)
我想您希望访问可移动SDCard。获取SDCard路径的标准方法是:Context.getExternalFilesDirs()。通常SDCard路径是最后一个,您必须去掉私有子路径(Android / ...)。更好地检查SDCard是否也已安装。
String path = null;
File[] dirs = getContext().getExternalFilesDirs(null);
if (dirs!=null && Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
path = dirs[dirs.length-1].getAbsolutePath();
path = path.substring(0, path.indexOf("Android"));
}
return path;