从图库中获取图像时出错

Error While fetch image from gallary

我编写了如下代码来获取图像:

private void openFileManager() {
    Intent i = new Intent(Intent.ACTION_PICK);
    i.setType("image/*");
    startActivityForResult(i, REQUEST_CODE_GALLERY);
}

并在 onActivityResult 方法中获取图像,如下所示:

Uri uri = data.getData();
InputStream is = getContentResolver().openInputStream(uri);
Bitmap b = BitmapFactory.decodeStream(is);
iv1.setImageBitmap(b);

但出现错误:

08-04 17:44:36.630 20795-20795/com.test E/image path: content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Ffile%2F10750/ORIGINAL/NONE/1807946268
08-04 17:44:36.630 20795-20795/com.test E/image path: content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Ffile%2F10750/ORIGINAL/NONE/1807946268
08-04 17:44:36.647 20795-20795/com.test W/System.err: java.io.FileNotFoundException: No such file or directory

它指向该行:InputStream is = getContentResolver().openInputStream(uri);

我在 marshmallow 中遇到了这个错误,但在 Kitkat 中没有。我觉得Google Photo App只有return ActivityResult中有这种类型的URI。

版本:当内部 Intent 调用 Google 照片应用程序进行图像选择时,我才知道这是错误。 Tnx @。但是如何解决这个问题。任何处理来自 Google Photo 的 URI 和 bifercate URI 以直接获取图片的代码。因为我必须在 Glide Library 函数中传递它才能在 ImageView 中呈现。

获取google时出现异常photos.you可以使用这个class获取。

您需要将此 2 类 FileUtils and LocalStorageProvider 复制到您的项目中,您可以使用此方法在 onActiyityResult 中获取文件

File mPhotoFile = FileUtils.getFile(this, data.getData());

它可以在所有 OS 版本和天气中使用 document 目录或 媒体目录.

尝试使用此代码在 android 5,6

中获取图像
private Bitmap getBitmapFromUri(Uri uri) throws IOException {
        ParcelFileDescriptor parcelFileDescriptor =
                getLocalContext().getContentResolver().openFileDescriptor(uri, "r");
        FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
        Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
        parcelFileDescriptor.close();
        return image;
    }

getLocalContext() 是您的本地上下文。