在Android 4.4 Kitkat中查找SD卡路径

时间:2014-08-05 18:25:43

标签: java android android-sdcard

在我的一个应用程序中,我正在访问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卡权限的文章。但是仍然有点困惑... 请任何人帮我解决一下???提前谢谢......

2 个答案:

答案 0 :(得分:0)

vold.fstab在4.3中不再使用。相反,fstab。现在在场。

尽管不是很清楚,但请参阅http://source.android.com/devices/tech/storage/

答案 1 :(得分:-1)

您必须致电:

File sdCardPath = Environment.getExternalStorageDirectory();

知道SD卡的路径。该函数调用调用系统的操作功能,确定SD卡的路径。要了解外部存储的状态,您必须使用

Environment.getExternalStorageState() 

功能