Android 如何使用MediaColumns?正在等待将Base64编码的图像保存到Gallery
我的应用程序中的活动将图像表示为Android 如何使用MediaColumns?正在等待将Base64编码的图像保存到Gallery,android,Android,我的应用程序中的活动将图像表示为Base64编码字符串 我正在抛出saveImage,以便MediaColumns\u挂起将图像保存到设备 插入图像(ContentResolver cr、字符串图像路径、字符串名称、字符串描述) 此方法在API级别29中被弃用。插入图像时应使用MediaColumns#IS#PENDING执行,这为生命周期提供了更丰富的控制 如何将此Base64编码字符串保存到带有MediaColumns#正在挂起的图像库中 以下是我正在进行的尝试: private Uri s
Base64编码字符串
我正在抛出saveImage
,以便MediaColumns\u挂起
将图像保存到设备
插入图像(ContentResolver cr、字符串图像路径、字符串名称、字符串描述)
此方法在API级别29中被弃用。插入图像时应使用MediaColumns#IS#PENDING执行,这为生命周期提供了更丰富的控制
如何将此Base64编码字符串保存到带有MediaColumns#正在挂起的图像库中
以下是我正在进行的尝试:
private Uri saveImage(final Bitmap bitmap)
{
Log.d(TAG, "imageBase64String=" + imageBase64String);
Log.d(TAG, "getDisplayName()=" + getDisplayName());
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DISPLAY_NAME, getDisplayName());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.IS_PENDING, 1);
values.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOWNLOADS);
ContentResolver resolver = getApplicationContext().getContentResolver();
Uri collection = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_INTERNAL);
Uri item = resolver.insert(collection, values);
try ( ParcelFileDescriptor pfd =
resolver.openFileDescriptor(item, "w", null)) {
// Write data into the pending image.
} catch ( IOException e) {
e.printStackTrace();
}
// Now that we're finished, release the "pending" status, and allow other apps
// to view the image.
values.clear();
values.put(MediaStore.Images.Media.IS_PENDING, 0);
resolver.update(item, values, null, null);
return item;
}
目前我得到
java.lang.UnsupportedOperationException:不支持写入内部存储
我正在模拟器上运行代码
我只想将Base64编码字符串
保存到库
或下载库
我还必须返回图像的URI
编辑
可以将字符串转换为位图
,并将位图保存到设备