重新命名由应用程序触发的文件之类的更改仅在重新启动Android设备或后显示在USB-MTP界面上,此时您在MediaScanner上注册了新文件(请参阅{{ 3}}):
file.renameTo(newFile);
MediaScannerConnection.scanFile(context,
new String[] { newFile.getAbsolutePath() }, null, null);
USB-MTP用于通过USB访问Android设备的存储。例如。使用Windows资源管理器。
然而,与Android {动态10.6.A.0.454下的Android 5.0.2(Build 10.6.A.0.454)下的Sony XPERIA Tablet Z(SGP321)文件夹将成为一个4KB的文件。我不再能够使用Windows资源管理器访问文件夹结构,也无法将文件复制到我的计算机上。即使重启平板电脑! Android 4.4.4的相同设备不显示该行为。似乎只有USB-MTP视图被破坏。 Android应用程序访问的文件结构看起来还不错。
问题:此行为是错误还是我错误地实现了?什么是正确的实施?
到目前为止,我已尝试解决此问题:
newFile
目录。 scanFile
的Android应用程序重命名文件来将文件转换回目录。重启后,我可以再次使用Windows资源管理器访问该目录。Trigger mediascanner on specific path (folder), how to?中建议的这一行 不刷新USB-MTP视图,但也不转换目录 进入文件:
MediaScannerConnection#scanFile
也许相关:
答案 0 :(得分:11)
我最终在每个想要显示的目录中创建一个虚拟文本文件,并在文件上使用scanFile。
1)创建目录,但不要“扫描”目录
2)将文件复制到目录
3)在filePath上运行scanFile
B