首页 > 解决方案 > 将 CSV 文件从 Android 设备传输到 PC

问题描述

我有一个使用以下方法生成 csv 文件的应用程序,

protected void makeCsvFileTrackLog() {
    final String CSV_SEPARATOR = ",";
    System.out.println("startMakeFile");
    Date T = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    String szDateTime = sdf.format(T);
    SimpleDateFormat date = new SimpleDateFormat("yyyyMMdd");
    String szDate = date.format(T);
    //creates /flightData directory on device if not created yet...
    File appDir = new File(Environment.getExternalStorageDirectory(), "flightData");
    appDir.mkdir();
    //creates new file if needed for sampling date
    File exportDir = new File(Environment.getExternalStorageDirectory(), "flightData/" + szDate);
    exportDir.mkdir();

    try {
        File csvSandboxFile = new File(Environment.getExternalStorageDirectory() + "/flightData/" + szDate, "TracklogDB_" + szDateTime + ".csv");

        csvSandboxFile.createNewFile();
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvSandboxFile), "UTF-8"));

        DBAdapter msdb = new DBAdapter(getApplicationContext(), szDbName, null);
        db = msdb.getWritableDatabase();

        Cursor c = db.rawQuery("SELECT * FROM trackLogDB", null);

        StringBuffer sb = new StringBuffer();
        ...
    } catch (IOException e) {
        Log.e("IOException", "exception in createNewFile() method");
    }
    System.out.println("endMakeFile");
}

这构建文件没有问题。但是,当技术人员和普通用户尝试将数据从设备卸载到 PC 时,就会出现问题。我们的大多数设备都运行 Android 版本 7 或 8。PC 是当前的 Linux 或 Win10。为了卸载数据,必须在连接到 PC 之前重新启动 android 设备。连接后,用户在 Android 设备上选择通过 USB 传输文件。如果 PC 是 Win10,则必须等待 Windows 操作系统正确检测到 Android 单元。然后,他们必须浏览到设备上 CSV 文件所在的目录。但是,新创建的 CSV 文件在目录中“通常”不可见,直到他们刷新它。有时只需简单的刷新即可,有时则必须关闭并重新打开目录。

问题 #1:我可以在 Android 应用程序端做些什么来让我的 CSV 文件更容易被发现?

问题 #2:我可以对 windows 或 Linux 框做些什么来帮助他们找到 Android 单元上的文件?

注意:这些 CSV 不包含“私人”数据。

标签: androidfile-transferandroid-file

解决方案


推荐阅读