为什么在DOWNLOADS文件夹中查看历史记录,但文件已经消失,实际上文件没有显示

时间:2018-02-21 16:51:32

标签: android filechooser

我正在推出这样的选择器(我尝试了不同的东西,如注释掉的行中所示):

Intent intent = new Intent();
//sets the select file to all types of files
intent.setType("application/pdf|application/msword|text/*");
//intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
//intent.addCategory(Intent.CATEGORY_OPENABLE);
//allows to select data and return it
//intent.setAction(Intent.ACTION_GET_CONTENT); // show more 
intent.setAction(Intent.ACTION_OPEN_DOCUMENT); //show less 
activity.startActivityForResult(Intent.createChooser(intent, "Select File"), PICK_FILE_REQUEST);

使用此代码,显示的菜单如下:

OPEN FROM

音频

最近

下载

Galaxy S6 edge

驱动器

如果点击“下载”菜单,它会显示文件的历史记录,但手机中根本找不到这些文件?

如果我浏览“Galaxy S6 edge”并从那里进入“下载”文件夹,我可以看到手机中的文件。

我注意到第一个场景是“下载”,最后是“ s ”,第二个场景是“下载”。

我该如何解决这个问题?有没有办法以编程方式删除菜单中出现的“下载 s ”文件夹?

1 个答案:

答案 0 :(得分:0)

似乎使用这行代码将显示"内部存储"默认情况下在汉堡包菜单中:

intent.putExtra("android.content.extra.SHOW_ADVANCED", true);

来自此网址:How to show the "internal storage" option in an ActionOpenDocument intent by default

关于"下载"历史文件夹:我之前观察到的并不准确。原来,这些文件已下载到"下载"手机中的文件夹将显示在"下载 s "历史文件夹,以及从"下载"手动删除文件时文件夹不会将其从"下载 s "历史文件夹自动。

所以似乎"下载 s "历史文件夹的行为类似于快捷方式,当手动删除指向的实际文件时,它不会自动清除。这可能很可能是期望行为。我想类似于Windows中的捷径。因此,在"下载 s "中选择文件时已经删除的历史文件夹将按预期生成NullPointerException,我们应该处理此异常。