insertImage中的未知URI错误

时间:2013-07-25 14:14:11

标签: android mediastore

尝试将位图保存到图库

Bitmap bitmap = Bitmap.createBitmap(surfaceView.getWidth(), surfaceView.getHeight(), Bitmap.Config.ARGB_8888);
surfaceView.draw(new Canvas(bitmap));
MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "foo" , "bar");

我在模拟器上运行了应用程序并得到了UnsupportedOperationException。

07-25 22:27:48.719: E/MediaStore(1918): Failed to insert image
07-25 22:27:48.719: E/MediaStore(1918): java.lang.UnsupportedOperationException: Unknown URI: content://media/external/images/media
07-25 22:27:48.719: E/MediaStore(1918):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:168)
07-25 22:27:48.719: E/MediaStore(1918):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:136)
07-25 22:27:48.719: E/MediaStore(1918):     at android.content.ContentProviderProxy.insert(ContentProviderNative.java:415)
07-25 22:27:48.719: E/MediaStore(1918):     at android.content.ContentResolver.insert(ContentResolver.java:730)
07-25 22:27:48.719: E/MediaStore(1918):     at android.provider.MediaStore$Images$Media.insertImage(MediaStore.java:801)

不幸的是我现在没有任何Android设备,这是因为模拟器吗?还是另一个原因?

3 个答案:

答案 0 :(得分:2)

当SD卡上没有目录DCIM / Camera时,我遇到了类似的问题。创建目录(并拥有权限)已经为我解决了类似的问题。

答案 1 :(得分:1)

我发现这是一个模拟器问题。我没有正确设置模拟器。为了解决这个问题,我所做的就是打开android虚拟设备管理器,编辑AVD并添加SD卡大小。一旦我完成了这一切,我就开始AVD并拍照了。完成后,它开始工作。

答案 2 :(得分:0)

它适用于Galaxy Nexus。所以它可能是模拟器问题。