我正在编写一个应用程序来创建、更新和删除“SD 卡”上的文件。如果我在 Nexus 7 上运行它,我需要通知媒体扫描仪服务文件已创建/删除/更新。我已经从这个线程实现了 SingleMediaScanner 类:Android How to use MediaScannerConnection scanFile。如果设备未连接到计算机,则效果很好。如果我连接它,我会立即看到最新的文件。
但如果设备通过 USB 连接到计算机,则效果不佳。创建文件工作正常。但是从我的应用程序更新文件不起作用。如果我这样做并将其复制到我的计算机上,我仍然会获得将设备连接到计算机时存在的版本(断开并连接设备可以解决此问题)。如果我将文件从我的计算机复制到设备,我可以立即在我的应用程序中使用新文件。如果我删除一个文件,它看起来仍然存在于我的计算机上,但大小为 0 字节。这也可以通过断开和连接设备来解决。
我真的很困惑。这是设计使然吗?我能做些什么来解决这个问题吗?