如何获取存储在SD卡上的图像的Uri?

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

当我想要得到存储在drawable上的图像的Uri时,我使用这个,它工作的很完美:

i.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.image)); 

但是,如果我想获得存储在SD卡上的图像的URI,我尝试了这一点,它不起作用,有什么错:

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

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

谢谢

  • Android 2.2 MediaPlayer可以正常使用一个SHOUTcast URL但不能与另一个一起使用
  • 如何监听自定义URI
  • 当为给定的URI调用ContentResolver.notifyChange()时,ContentObservers是否会通知此URI的后代URI?
  • Android GCM PushNotification - 在应用程序中添加自定义声音文件
  • 将Uri转换为string
  • 有关如何从URI获取Exif数据的最终答案
  • android.content.UriMatcher的含义
  • Uri Builder在android - '/'被'%2F'replace,“:”被replace为“%3A”
  •  String filename = "image.png"; String path = "/mnt/sdcard/" + filename; File f = new File(path); // Uri imageUri = Uri.fromFile(f); 

    始终使用Environment.getExternalStorageDirectory()而不是硬编码外部存储目录的path。 因为外部存储目录的path在不同的API级别可能会有所不同。

    尝试这个:

     String fileName = "YourImage.png"; String completePath = Environment.getExternalStorageDirectory() + "/" + fileName; File file = new File(completePath); Uri imageUri = Uri.fromFile(file);