【发布时间】:2018-08-27 10:17:45
【问题描述】:
标题就是问题。我正在使用 libaums 使用 BufferedInput/OutputStream 双向传输文件,最后调用 close() 。然后我将关闭 UsbMassStorageDevice 并退出应用程序。
但是,在“设置”->“存储”中,我看到 USB OTG 存储保持挂载状态。它只能在“设置”中的弹出窗口中卸载。似乎没有合法的 Android API 可以从代码中卸载 USB 驱动器。
因为我正在构建一个最小的 UI/最小交互应用程序,所以这是一个很大的麻烦。但是,我在没有明确卸载的情况下多次拔掉了记忆棒,并且复制的文件始终有效(使用 diff 进行检查)。
那么 - 复制文件并使用 libaums 调用 close 可以保证文件的完整传输吗?或者是否存在一些无法强制刷新的底层操作系统内存缓冲区,因此在不卸载的情况下拔下驱动器会导致文件损坏?
【问题讨论】: