如何使用Intent.ACTION_VIEW查看文件夹的内容?

时间:2011-02-25 06:44:00

标签: android android-manifest android-intent sd-card

我正在尝试使用intent查看特定文件夹中的图像。我的代码如下:

Intent intent = new Intent();  
intent.setAction(Intent.ACTION_VIEW);  
Uri imgUri = Uri.parse("file://sdcard/download");  
intent.setDataAndType(imgUri, "image/*");  
startActivity(intent);  

但是,每次运行时,我都会在日志中收到此消息:

  

02-25 00:40:16.271:ERROR /(8359):无法打开'/ download'
  02-25 00:40:16.271:ERROR /(8359):无法打开'/ download'

我做错了什么?

4 个答案:

答案 0 :(得分:1)

我认为这比其他人建议的要简单得多。我相信这条路是区分大小写的。在您的示例中,“file:// sdcard / Download”应该可以正常工作。

答案 1 :(得分:1)

尝试这样的事情

Intent intent = new Intent();
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);

Intent intent = new Intent();
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);

答案 2 :(得分:0)

我有一个类似的问题,我有一个实例,要求我给用户选择从预定位置选择照片。我目前使用的工作解决方案要求您在设备上已经有某种文件管理器。我正在使用的那个叫做“OI文件管理器”。它可以从Android / Play市场免费下载。话虽如此,你可以尝试使用:

 //--Note: You can supply the full location of the folder but if you don't know it and
//         if the folder location is on the sdcard, provide the following:
 File root = new File(Environment.getExternalStorageDirectory() + File.separator + "myFolder" + File.separator);
 Uri uri = Uri.fromFile(root);

 Intent intent = new Intent();
 intent.setAction(android.content.Intent.ACTION_VIEW);
 intent.setData(Uri.fromFile(root));
 startActivityForResult(intent, PIC_REQUEST);

这样做会打开一个对话框,要求您选择用于处理请求的选项。当它执行此操作时,只需选中“OI文件管理器”选项之前,在“我们默认使用...”的底部框中选中该框。这将设置为每次启动intent时它将自动打开您指定的位置,以便您可以查看内容,而无需在每次启动intent时向下钻取到文件夹位置。不得不依赖第三方应用程序并不好,但它可能是您的选择。

答案 3 :(得分:0)

Intent intent = new Intent();  
intent.setAction(Intent.ACTION_GET_CONTENT);
Uri imgUri = Uri.fromFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS));
intent.setDataAndType(imgUri, "file/*");   
startActivity(intent);

对我有用..