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