【问题标题】:File exchange PC <--> Android via USB MTP issues文件交换 PC <--> Android 通过 USB MTP 问题
【发布时间】:2015-03-13 04:26:31
【问题描述】:

在我的 android 应用程序中,我创建了一个文件并将一些测试文本写入其中:

File externalPath = getExternalFilesDir(null);
File importPath = new File(externalPath, "pd-import");
if(!importPath.exists()) {
    Log.d(this.getClass().getSimpleName(), "Create import dir: " + importPath.getAbsolutePath());
    importPath.mkdirs();
}

File readme = new File(importPath, "README.txt");
try {
    FileWriter fw = new FileWriter(readme);
    fw.write("This is a test");
    fw.flush();
    fw.close();
} catch (IOException e) {
    e.printStackTrace();
}

这会写入文件,该文件可以通过 B1 文件管理器 等 Android 文件浏览器进行审批。它被写入 HOME/Android/data/JAVA_PACKAGE_NAME/files/pd-import/README.txt

logcat 显示: D/MainActivity:创建导入目录:/storage/emulated/0/Android/data/JAVA_PACKAGE_NAME/files/pd-import

当我通过 USB 将我测试代码的 Nexus 连接到我的 Ubuntu 笔记本电脑时,我会看到所有其他应用程序数据目录,例如 NEXUS 5/Interner Speicher/Android/data/ALL_THE_OTHER_JAVA_PACKAGE_NAMEs( “Inner Speicher”代表:内部存储器)。但是我的应用没有列出该文件夹。

我是否需要设置一些额外的 medatdata/information/whatever,才能在 MTP 连接上列出文件夹?有什么建议吗?

【问题讨论】:

    标签: android file-upload usb mtp


    【解决方案1】:

    重启设备后目录是否出现?如果是,我认为这个错误是原因:https://code.google.com/p/android/issues/detail?id=38282

    所有使用 MTP 而非 USB 大容量存储的手机都无法正确显示 手机连接到计算机时的文件列表 USB电缆。设备上运行的 Android 应用程序也看不到这些 文件。

    这会影响使用 Java API 编写的文件,但似乎不会 影响使用 C API 编写的文件。

    解决办法是重启设备。

    似乎没有解决。

    【讨论】:

    • @andreas 我不确定这个,但我不认为使用 ddms 文件浏览器检查将有助于通过 nexus 设备进行探索,除非您使用模拟器。但它肯定会在您手机中安装的文件资源管理器应用程序中可见。如果我错了或遗漏了任何要点,请纠正我。
    • 嗨,很抱歉我的回复晚了!我病了,无法测试您的建议。也许我明天可以。
    猜你喜欢
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多