![](/img/trans.png)
[英]folder created on external storage are not properly visible in PC if i connect it via USB ( MTP )
[英]Folder created on Android external storage isn't visible via MTP but showing in adb shell
我在开发的应用程序在这里遇到了一个奇怪的问题。 它使用Apache Codova 3.0.0和库存文件插件在具有Android 4.3的Samsung Galaxy Nexus的外部存储上创建目录,并在其中添加一些文件。
这里发生的是,我实际上可以执行此操作,但是当我将设备作为大容量存储设备连接到计算机时,创建的目录(包括文件)没有显示。 除我创建的文件夹外,所有其他文件夹均正常显示。 但是,当我使用“ adb shell”浏览设备时,我可以看到该文件夹,并且其来自“ ls -al”的目录模式与所有其他文件夹的模式完全相同。 读取和写入权限被授予该应用程序。
我也在Android代码中尝试过相同的方法,其行为完全相同:
File f = new File(Environment.getExternalStorageDirectory().toString()+"/myFolder");
if (!f.isDirectory()) {
f.mkdir();
Log.i("myApp", "Created directory: "+f);
}
该操作成功,但是当我将设备重新连接到计算机时,该文件夹再次不可见。 提及一下:我从IDE运行应用程序-也许:是否有一个沙盒或我不知道的沙盒,可能会导致使用adb shell在/ sdcard中显示内容,但在作为外部存储连接时却无法显示?
我想我必须在这里想念一些基本的东西,希望你们对我有一个答案:)
谢谢!
新文件和文件夹可能需要一些时间才能通过MTP显示。 如果您可以通过adb
查看文件夹,则您的代码运行良好。
Android会不时地进行MTP索引编制(我不确定确切的时间延迟),因此新文件在创建后不会立即显示。 您可以尝试通过代码强制运行MediaScanner以强制建立索引,或重新启动设备。
确保不要仅在文件上调用目录上的MediaScannerConnection.scanFile
。 在这种情况下,我的Lg(Android 4.4.2)将MTP中的目录作为常规文件显示!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.