繁体   English   中英

无法通过MTP看到在Android外部存储上创建的文件夹,但该文件夹显示在adb shell中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM