【问题标题】:External storage folders of Android 4.4.2 device do not appear in windows 10 browserWindows 10 浏览器中不显示 Android 4.4.2 设备的外部存储文件夹
【发布时间】:2016-06-02 09:11:09
【问题描述】:

我希望我的 Android 应用程序的用户能够通过 USB 将数据文件复制到他们的计算机上。一旦复制,他们应该还能够擦除 android 设备上的文件。为此,我的应用程序按照 Google 的建议创建了存储在外部存储空间中的 .csv 文件。由于这种方法,我已经创建了目标文件夹:

static File getMyStorageDir() {
           File file = newFile(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_DOCUMENTS), "MyDir");
    if (!file.mkdirs()) {
        Log.e( "LogFile", "Directory not created");
    }
    return file;
}

在 Android 设备上,我可以浏览“/sdcard/Documents/MyDir”中的 .csv 文件。当我在 MTP 模式下将设备连接到 Win 10 计算机时,“文档”文件夹没有出现。如果我尝试在 Windows 资源管理器中创建“文档”文件夹,它将失败,(可能)证明该文件夹存在,但被隐藏。另一方面,我可以在 Windows 中创建一个文件夹“foo”并将文件放入其中。一段时间后,“foo”文件夹及其内容将出现在设备上的浏览器(ES 文件资源管理器)中。最后,我可以删除“DCIM/Camera”文件夹中的文件...

我想我很接近,但我错过了一些东西......

【问题讨论】:

  • 设备需要更新它的 mtp 数据库才能将文件显示到 Windows。自动扫描发生在设备启动时,但通常不会在之后。您可以通过stackoverflow.com/questions/9414955/… 强制它这样做
  • 感谢您的链接。我试图用 sendBroadcast() 来“欺骗操作系统”,但它目前不起作用——我得到了一个例外。我稍后会深入研究。
  • mediascannerconnection 应该可以在所有版本的 android(文件)上正常工作 - stackoverflow.com/questions/31157882/…
  • 好的 - 我想我会认真调查这件事,因为我注意到 Android 和 Windows 之间的同步非常滞后......
  • 在创建新文件后,我在代码中添加了以下神奇的行: MediaScannerConnection.scanFile ( context, new String[] { mStoreDir }, null, null);我可以看到 Windows 浏览器的内容实时更新。完美。

标签: java android android-external-storage mtp


【解决方案1】:

MTP 缓存会过期,直到手机重新启动。

解决方法是:

清除“媒体存储”应用的数据并重启设备

【讨论】:

  • 我已经重启了手机,它立即工作。浪费了这么多时间!非常感谢。
  • 最好的感谢是接受答案。快乐编码。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-10
相关资源
最近更新 更多