Как получить Uri изображения, хранящегося на SDCARD? - PullRequest
10 голосов
/ 28 ноября 2011

Мне нужно получить URI изображения, хранящегося на SDCARD.

Когда я хочу получить URI изображения, хранящегося в Drawable, я использую его, и он отлично работает:

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

Но если я хочу получить URI изображения, хранящегося на SDCARD, я попытался с этим, и он не работает, что-то не так:

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

Пожалуйста, кто-нибудь может подсказатьмне, как получить правильный URI изображения, хранящегося на SDCard?

Спасибо

Ответы [ 2 ]

15 голосов
/ 11 декабря 2013

Всегда используйте Environment.getExternalStorageDirectory() вместо жесткого кодирования пути к каталогу внешнего хранилища. Поскольку путь к внешнему каталогу хранилища может отличаться на разных уровнях API.

Попробуйте это:

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

File file = new File(completePath); 
Uri imageUri = Uri.fromFile(file);
12 голосов
/ 28 ноября 2011
String filename = "image.png";
String path = "/mnt/sdcard/" + filename;
 File f = new File(path);  //  
            Uri imageUri = Uri.fromFile(f);     
...