Android 安卓:华硕Nexus7在重启之前不会提交模拟内存

Android 安卓:华硕Nexus7在重启之前不会提交模拟内存,android,android-external-storage,Android,Android External Storage,我有一个非常具体的问题-我试图写入华硕Nexus 7上的外部存储,但它正在写入设备上的模拟目录 以下是我正在使用的代码: public static void writeExternalMedia(Context context) { if(isExternalStorageWritable()) { String content = "hello world"; File filedir = new File(Environment.getExtern

我有一个非常具体的问题-我试图写入华硕Nexus 7上的外部存储,但它正在写入设备上的模拟目录

以下是我正在使用的代码:

public static void writeExternalMedia(Context context) {
    if(isExternalStorageWritable()) {
        String content = "hello world";

        File filedir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/test");
        filedir.mkdir();

        File file;

        FileOutputStream outputStream;

        try {
            file = new File(filedir, "test.txt");

            if (!file.exists()) {
                file.createNewFile();
            }

            outputStream = new FileOutputStream(file);
            outputStream.write(content.getBytes());
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
}
每当我重新启动设备时,当插入时,目录就会出现在设备下,这就是我在执行上述函数时所期望的情况


我试图寻找解决方案,但找不到问题的答案。

我提出了两种方法。一个用于创建文件,另一个用于附加文件。我认为问题在于您没有调用createNewFile

private File CreateFile(String fileName)
{
    File file = new File(this.getFilesDir(), fileName);
    try
    {
        if(!file.exists())
        {
            file.createNewFile();
        }
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    return file;
}

private void appendToFile(String file, String content)
{
    try
    {
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(this.openFileOutput(file, this.MODE_APPEND));
        outputStreamWriter.append(content + "\n");
        outputStreamWriter.close();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
}

好吧,经过大量的搜索和测试,我终于找到了一个解决方案,通过其他答案之一链接


解决方案是扫描媒体文件,这会导致文件传播到外部存储,而不是停留在模拟存储中。

我很确定这与此相同:我使用了这种方法,但不幸的是,它不起作用。谢谢你的努力!谢谢你的努力,但那没用。我试图使用的文件目录位于外部存储器上。正在写入的实际目录报告为“/storage/simulated/0/Download/test”。当我将一个文件写入这个工作正常的模拟目录时,该文件在设备重新启动之前不会出现。