2016-07-15 122 views
0

我正在为Android(版本4.4)做一个应用程序,并且我试图同时选择多个文件(.doc,.pdf)。目标是浏览目录,选择一些需要清理的文件并返回这些文件的列表。 我最初尝试过这种方式,但Extra_Allow_Multiple指令不起作用:我一次只能选择一个文件。Java - 如何在Android中选择多个文件

Intent intent = new Intent("com.sec.android.app.myfiles.PICK_DATA"); 
intent.putExtra("CONTENT_TYPE", "*/*"); 
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
intent.addCategory(Intent.CATEGORY_DEFAULT); 
startActivityForResult(intent, PICKFILE_REQUEST_CODE); 

所以我试图在这个其他的方式,但我不会在设备的所有目录浏览,只有在特定的人(图像/视频/音频...),我不能选择 多个文件出于与之前相同的原因。

Intent intent = new Intent(); 
intent.setType("*/*"); 
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(intent, PICKFILE_REQUEST_CODE); 

我也试过其他的组合,但往往会出现类似这样的错误:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.GET_CONTENT (has extras) } 

我如何可以选择多个文件,可能在某种程度上都对第一种方法?

回答

0

你试过吗?

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("file/*"); 
startActivityForResult(intent, PICKFILE_REQUEST_CODE); 

我把这个代码段从this StackOverflow上的问题。

我对Android中的这个功能不是很熟悉,但是如果这有帮助的话,您可以明显地检索文件UrionActivityResult()

+0

通过这种方式,startActivity直接打开Dropbox的初始Activity,并且我无法浏览设备的内部文件。相反,使用intent.setType(“*/*”);我只看到特定的文件夹(图像,视频,下载),我一次只能选择一个文件,而我正在寻找一种方法,允许我多选:) – Dieghitus

+0

哦,我明白了:DI做了一些研究developer.android.com,并发现Intent.EXTRA_ALLOW_MULTIPLE(true)使它成为可能...但似乎你已经这样做了,你有没有尝试过不同的文件管理器(即ES文件浏览器)? [链接到Android开发](https://developer.android.com/guide/components/intents-common.html#Storage)此外,这是一个有趣的SO [问题](https://stackoverflow.com/questions/ 19068842/can-we-use-intent-extra-allow-multiple-for-older-versions-of-android-api-levels) –

+0

谢谢 - 我已经尝试过另外一次了,Extra_Allow_Multiple只与Action_get_content一起工作,只需保持按下文件以允许多个选择。我已经部分解决了我的问题,但我无法浏览设备的文件夹:我只能看到具有默认文件管理器的特定文件夹。我已经尝试过使用文件资源管理器和其他两个程序,我可以根据需要导航,但没有允许进行多项选择...... – Dieghitus