Java 保存在Android内部存储器中的文件在连接USB时不会显示在PC上

Java 保存在Android内部存储器中的文件在连接USB时不会显示在PC上,java,android,windows-10,Java,Android,Windows 10,我正在开发一个android应用程序,它必须通过json文件与pc软件通信。 因此,在我的android应用程序中,用户可以导出存储在下载文件夹中的数据。其目的是,在我的VB.NET应用程序中,当设备USB连接到PC时,我将检索此文件,并处理数据 我认为我的导出工作得很好,文件存储在下载文件夹中并且可读。但是,当我将我的设备连接到PC(windows 10 btw)并在android设备上选择传输文件时,文件不会显示在下载中。我试着把其他文件放在设备内部存储器中,我可以在计算机文件浏览器上看到它

我正在开发一个android应用程序,它必须通过json文件与pc软件通信。 因此,在我的android应用程序中,用户可以导出存储在下载文件夹中的数据。其目的是,在我的VB.NET应用程序中,当设备USB连接到PC时,我将检索此文件,并处理数据

我认为我的导出工作得很好,文件存储在下载文件夹中并且可读。但是,当我将我的设备连接到PC(windows 10 btw)并在android设备上选择传输文件时,文件不会显示在下载中。我试着把其他文件放在设备内部存储器中,我可以在计算机文件浏览器上看到它们,所以我真的不明白

我搜索了我的问题,发现它可能是缓存问题,我做了这篇文章中所说的,但我有同样的问题

以下是我为将文件保存到设备中而编写的代码:

private void writeExportFile() {
    try {
        if (!(ContextCompat.checkSelfPermission(mainAct, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)) {
            requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
        } else {
            File file = new File(Environment.getExternalStorageDirectory() + "/Download/data_export.json");

            Writer output = new BufferedWriter(new FileWriter(file));
            output.write(reportArray.toString());
            output.close();

            Toast.makeText(mainAct, "Export to " + file.getAbsolutePath(), Toast.LENGTH_LONG).show();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
有人知道我为什么看不到我的书面文件以及我应该做什么吗

另外,我很高兴听到您对android设备中文件存储的看法。我是android开发新手,不知道哪些好的实践。当我必须从pc上获取文件时,我不知道在安卓设备上存储文件的最有效方式是什么。我选择下载,因为文件不在所有安卓设备上。当我读完后,我想把它从电脑上删除

谢谢你的阅读

编辑:我尝试添加媒体商店扫描,以按照建议的黑色应用程序扫描我的文件。当我这样做时,我的文件不会保存在下载中。我按照这个步骤使用了一个媒体扫描仪

public class SingleMediaScanner implements MediaScannerConnectionClient {

    private MediaScannerConnection mMs;
    private File mFile;

    public SingleMediaScanner(Context context, File f) {
        mFile = f;
        mMs = new MediaScannerConnection(context, this);
        mMs.connect();
    }

    @Override
    public void onMediaScannerConnected() {
        mMs.scanFile(mFile.getAbsolutePath(), null);
    }

    @Override
    public void onScanCompleted(String path, Uri uri) {
        mMs.disconnect();
    }

}

在我的方法
writeExportFile()
中,我添加了指令
newsinglemediascanner(mainAct,file)
输出.close()之后

您应该让媒体存储先扫描您的文件。或者重新启动设备即可。文件是否保存在设备中?你能在你的设备上用文件管理器应用程序看到它吗?在那个捕获块中也放一个祝酒词。我正在做媒体商店扫描@blackapps,如果它改变了什么,我会告诉你的。文件保存在设备中,在下载时,我可以看到并打开它。try块的toast始终显示,因此不会出现任何错误,但文件不会显示在我的计算机上。添加媒体存储扫描时,我的文件将被删除或取消保存。这是什么意思?