我有一个非常奇怪的问题,我的三星Nexus与Android 4.0.2。我写了一个简单的程序,基本上每次用户按下一个按钮就创建一个文件。我的程序在其他设备上运行良好,在Galaxy Nexus Windows/Mac上看不到SD卡上的那些文件,但当我执行ADB Shell时,我看到SD卡上的所有文件。
我在另一个拥有android 4.0.4的nexus上重新测试了这个,但结果仍然相同。
原因可能是什么?
最佳答案
您可能需要通过MediaScannerConnection
为文件编制索引。引用我自己的话:
…MTP内容不是基于外部存储的文本内容。相反,MTP内容基于MediaScannerConnection扫描的文件。如果您将文件写入外部存储器,则在MediaScannerConnection扫描该文件之前和之前,用户将无法通过MTP看到该文件。
外部存储在重新启动时进行扫描,可能是定期扫描。用户可以通过sdrescan等实用程序手动强制扫描。但是,最好的解决方法是在关闭文件后使用MediaScannerConnection上的scanFile()更新媒体数据库。这将使您的文件立即对用户可用。