Java 获取galaxy Notes上的内部目录路径

Java 获取galaxy Notes上的内部目录路径,java,android,android-external-storage,Java,Android,Android External Storage,在我的应用程序中,我使用以下方法访问外部存储器(根据需要,它可以是内部存储器或SD卡的一部分),在我的Xperia V中,它返回内部存储器(不是SD卡)的路径 当我尝试在没有安装SD卡的galaxy Notes上运行应用程序时,我发现上面的方法没有返回存储路径(如果获得成功路径,应用程序应该保存一个文件)。那么我能知道有没有一种方法可以访问外部存储器(它没有安装SD卡) 感谢您获取外部存储路径,请尝试以下操作 String root = Environment.getExternalStorag

在我的应用程序中,我使用以下方法访问外部存储器(根据需要,它可以是内部存储器或SD卡的一部分),在我的Xperia V中,它返回内部存储器(不是SD卡)的路径

当我尝试在没有安装SD卡的galaxy Notes上运行应用程序时,我发现上面的方法没有返回存储路径(如果获得成功路径,应用程序应该保存一个文件)。那么我能知道有没有一种方法可以访问外部存储器(它没有安装SD卡)


感谢您获取外部存储路径,请尝试以下操作

String root = Environment.getExternalStorageDirectory().getPath();

它将重新运行外部存储的确切路径

首先,您的应用程序必须具有写入外部存储的权限,它在清单文件中指定,请参见以下内容:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
要获取外部SD卡装载目录,只需更改:

                    if (Environment.getExternalStorageDirectory()
                            .getAbsolutePath().equals(path)) {
                        break;
                    }
致:


注意:此方法是针对其他设备的,我可以使用它,因为我知道我只针对具有额外内部存储的三星设备开发。如果您希望此操作适用于所有设备,则必须进行其他更改。

“它返回内部存储的路径”-否,它返回到外部存储的路径。请阅读文档了解内部和外部存储的定义:我做了。它还说在某些设备中,内部存储的一部分映射为外部存储(来自内部存储的分区),我的Xperia V将外部存储映射为内部存储。似乎我也在这样做:/抱歉,但我试图尽可能描述。我想知道一种即使设备没有安装SD卡也能保存数据的方法。请使用
getExternalFilesDir()
,或
getExternalCacheDir()
,或
Environment.getExternalStorageDirectory()
(到目前为止,关于您的问题的一个现有答案引用了后者)。
File getRecordingDirectory()
    {
        File recordingDir = null;

            // get the state of external storage
        String externalStorageState = Environment.getExternalStorageState();

        if(externalStorageState.equals(Environment.MEDIA_MOUNTED))
        {
            File extDir =
                    Environment.getExternalStorageDirectory();

            recordingDir = new File(extDir, "AudioRecorder");

            if(!recordingDir.exists())
            {
                if(!recordingDir.mkdirs())
                {
                Log.e("RECORDER", "Unable to create Silent Recorder recordings directory.");
                }
            }
        }
        return recordingDir;
    }
private String getInternalSDPath() {
    File file = new File("/system/etc/vold.fstab");
    FileReader fr = null;
    BufferedReader br = null;

    try {
        fr = new FileReader(file);
    } catch (FileNotFoundException e) {

    }
    String path = null;
    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
                    if (Environment.getExternalStorageDirectory()
                            .getAbsolutePath().equals(path)) {
                        break;
                    }
                }
                s = br.readLine();
            }
        }
    } catch (IOException e) {

    } finally {
        try {
            if (fr != null) {
                fr.close();
            }
            if (br != null) {
                br.close();
            }
        } catch (IOException e) {

        }
    }
    return path;
}
                    if (Environment.getExternalStorageDirectory()
                            .getAbsolutePath().equals(path)) {
                        break;
                    }
                    if (!Environment.getExternalStorageDirectory()
                            .getAbsolutePath().equals(path)) {
                        break;
                    }