Android MediaStore.Images.Media.getBitmap返回错误

Android MediaStore.Images.Media.getBitmap返回错误,android,mediastore,Android,Mediastore,ContentResolver cr=getContentResolver(); Uri pic=Uri.parse(“content://media/external/images/media/3"); 位图bm=Media.getBitmap(cr,pic) 上面的代码是用我的Activity类的onCreate方法编写的。它抛出以下错误: 08-30 12:27:22.352:WARN/System.err(245):java.io.FileNotFoundException:无内容提供程

ContentResolver cr=getContentResolver(); Uri pic=Uri.parse(“content://media/external/images/media/3"); 位图bm=Media.getBitmap(cr,pic)

上面的代码是用我的Activity类的onCreate方法编写的。它抛出以下错误:

08-30 12:27:22.352:WARN/System.err(245):java.io.FileNotFoundException:无内容提供程序:[content://media/external/images/media/3]


有什么不对劲吗?存在问题的文件是因为我在另一个方法中启动了Intent(Intent.ACTION\u PICK,android.provider.MediaStore.Images.Media.INTERNAL\u CONTENT\u URI),并从返回的Intent中获取了拾取的图像的URI。

好的,我发现了问题。我给错Uri了。我在给你”[content://blahblah]“我应该给你的”content://blahblah“

好的,我发现了问题。我给错Uri了。我在给你”[content://blahblah]“我应该给你的”content://blahblah“

您应该做如下操作:

private String getPath(Uri uri) {
String[]  data = { MediaStore.Images.Media.DATA };
CursorLoader loader = new CursorLoader(context, uri, data, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}

你应该这样做:

private String getPath(Uri uri) {
String[]  data = { MediaStore.Images.Media.DATA };
CursorLoader loader = new CursorLoader(context, uri, data, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
当你说“你在给予”时,意思是你写了uripic=Uri.parse(“[content://media/external/images/media/3]"); 字符串中包含[]以进行分析还是。。?10q当你说“你在给予”时,意思是你写了uripic=Uri.parse(“[content://media/external/images/media/3]"); 字符串中包含[]以进行分析还是。。?10q