У меня проблема с тем, что Uri.getPath() включает /-1/1/, как показано ниже, Uri проникал внутрь
protected void onActivityResult(int reqCode, int resultCode, Intent data)
из ВЫБРАТЬ несколько изображений следующим образом
ClipData.Item item = clipData.getItemAt(i);
Uri uri = item.getUri();
Я пытаюсь получить файл из Uri, следующие образцы кодов всегда получают ошибку: FileNotFound
private void getImg(Uri uri){
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(new File(uri.getPath()).getAbsolutePath(), options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
/....... some code ...
// ArrayList<File>
mFile.add(new File(uri.getPath());
}
06-29 12:33:34.829 8160-8160/com.jinn.mutita.photoImx E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException:
/-1/1/content:/media/external/images/media/15878/ORIGINAL/NONE/3385104: open failed: ENOENT (No such file or directory)
Однако, если я получу следующее и сохраню в локальный файл: это можно сделать.
InputStream input = thiscontext.getContentResolver().openInputStream(uri);
Но я могу сначала защитить входной поток локально, пожалуйста, помогите, у меня уже есть поиск, но я не уверен, что формат Uri был изменен или сейчас.
Как обрабатывать файл с путем из Uri? . Спасибо