【发布时间】:2016-08-04 12:29:33
【问题描述】:
我编写了如下代码来获取图像:
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);
我在棉花糖中收到此错误,但在 Kitkat 中没有。我觉得 Google Photo App 只在 ActivityResult 中返回这种类型的 URI。
版本:当内部意图调用谷歌照片应用程序进行图像选择时,我知道这是错误的。 Tnx @Sanket。但是如何解决这个问题。用于处理来自 Google Photo 的 URI 的任何代码,并将 URI 分叉以直接获取图片。因为我必须在 Glide Library 函数中传递它才能在 ImageView 中渲染。
【问题讨论】:
-
尝试切换到
ACTION_GET_CONTENT。ACTION_PICK用于从特定集合中挑选一段内容。要根据 MIME 类型选择内容,请使用ACTION_GET_CONTENT。 -
它仍然是同样的错误@CommonsWare。我遇到的另一个问题是如果我使用 ACTION_GET_CONTENT 那么它会显示所有文件,即使它的图像与否。
标签: android android-intent android-contentprovider android-gallery android-bitmap