'getContentResolver ().openInputStream (uri)` создает исключение FileNotFoundException
Я использую это намерение, чтобы позволить пользователю выбрать фотографию:
Intent intent = new Intent(Intent.ACTION_PICK,
MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(intent, INTENT_SELECT_PHOTO);
И в onActivityResult
:
Uri uri = data.getData();
InputStream inputStream = getContentResolver().openInputStream(uri);
Но он бросает FileNotFoundException
на некоторых устройствах android.
Значение uri
:
content://media/external/images/media/26467
Исключение, вызванное:
java.io.FileNotFoundException: No such file or directory
И очень странно, что он не выбросит это исключение на некоторых других устройствах android. Что вызовет эту ошибку и как ее исправить?
3 ответа:
MediaStore.Images.Media.INTERNAL_CONTENT_URI
Для изображений на локальном устройстве или
MediaStore.Images.Media.EXTERNAL_CONTENT_URI
Для изображений на SD-карте.
Вы уверены, что правильно обращаетесь к обоим? Внутренняя / внешняя обработка варьируется в зависимости от устройства, возможно, поэтому она работает на одних, но не на других.