getExternalStorageDirectory

getExternalStorageDirectory

想象一下一个没有sd内存的android设备。只有它自己的内存。
我不确定在这种情况下Environment.getExternalStorageDirectory()返回什么。
空或内存位置对永久数据存储有效?

最佳答案

public static File getExternalStorageDirectory()
添加到API级别1中
获取Android外部存储目录。如果用户已将此目录安装到其计算机上、已从设备中删除或发生了其他问题,则此目录当前可能无法访问。您可以使用getExternalStorageState()确定其当前状态。
注意:不要被这里的“外部”这个词搞混了。这个目录最好被认为是媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上,这是一个SD卡,但它也可以实现为设备中的内置存储,该设备不同于受保护的内部存储,可以作为文件系统安装在计算机上。
我认为不同的设备。
我有一个三星galaxy s3Environment.getExternalStorageDirectory()返回sdCard0这是内存的路径。
更多信息@
http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory()
我不推荐下面的。我和Commonware讨论过这个问题,建议不要使用下面的代码。但您可以使用下面的测试目的。

String externalpath = new String();
String internalpath = new String();

public void getExternalMounts() {
    Runtime runtime = Runtime.getRuntime();
    try {
        Process proc = runtime.exec("mount");
        InputStream is = proc.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        String line;

        BufferedReader br = new BufferedReader(isr);
        while ((line = br.readLine()) != null) {
            if (line.contains("secure")) continue;
            if (line.contains("asec")) continue;

            if (line.contains("fat")) {//external card
                String columns[] = line.split(" ");
                if (columns != null && columns.length > 1) {
                    externalpath = externalpath.concat("*" + columns[1] + "\n");
                }
            }
            else if (line.contains("fuse")) {//internal storage
                String columns[] = line.split(" ");
                if (columns != null && columns.length > 1) {
                    internalpath = internalpath.concat(columns[1] + "\n");
                }
            }
        }
    }
    catch(Exception e) {
        e.printStackTrace();
    }
    System.out.println("Path  of sd card external............"+externalpath);
    System.out.println("Path  of internal memory............"+internalpath);
}

07-27 21:54