我正在尝试使用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'
我做错了什么?
答案 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);
对我有用..