如何获取存储在SDCARD上的图像的URI?

12

我需要获取存储在SD卡上的图像的URI。

当我想要获取存储在drawable上的图像的Uri时,我使用以下代码,它可以完美地工作:


```java Uri uri = Uri.parse("android.resource://your.package.name/" + R.drawable.your_image); ```
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.image));

但如果我想获取存储在SDCARD上的图像的URI,我尝试了以下代码,但它不起作用,肯定有些地方出错了:

i.putExtra(Intent.EXTRA_STREAM, Uri.parse("/mnt/sdcard/car.jpg"));

请问有人可以告诉我如何获取存储在SD卡上的图像的正确URI吗?

谢谢


你试过使用 i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://mnt/sdcard/car.jpg")); 吗?让我知道发生了什么。 - user370305
请看这里: https://dev59.com/DFDTa4cB1Zd3GeqPNvYM - Sunil Kumar Sahoo
2个回答

17

始终使用Environment.getExternalStorageDirectory()而不是硬编码外部存储目录的路径。因为不同的API级别中外部存储目录的路径可能不同。

尝试这样做:

String fileName = "YourImage.png";
String completePath = Environment.getExternalStorageDirectory() + "/" + fileName;

File file = new File(completePath); 
Uri imageUri = Uri.fromFile(file);

13
String filename = "image.png";
String path = "/mnt/sdcard/" + filename;
 File f = new File(path);  //  
            Uri imageUri = Uri.fromFile(f);     

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接