【发布时间】:2026-02-01 08:00:01
【问题描述】:
我正在开发需要从服务器下载图像/视频并将其保存到媒体商店和本地应用程序数据库的应用程序,其 URI 类似于 content://media/external/images/media/10052,在从 URI 下载到应用程序后加载。
当应用从服务器接收到图像时,它首先在 Android 11/API 30 上借助此方法下载。
private Uri mediaStoreInsert(String fileName, String mimeType, String directoryPath){
Log.d(TAG, "mediaStoreInsert: Values = "+fileName+" "+directoryPath+" "+mimeType);
ContentResolver resolver = MyApplication.getmContext().getContentResolver();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, fileName);
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, mimeType);
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH,Environment.DIRECTORY_PICTURES+"/"+directoryPath);
Uri mediaStore;
if (mimeType.equals(imageType)){
mediaStore = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY);
}else {
mediaStore = MediaStore.Video.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY);
}
Uri uri = resolver.insert(mediaStore, contentValues);
Log.d(TAG, "mediaStoreInssert: URI Check = "+uri);
OutputStream outputStream = null;
try {
outputStream = MyApplication.getmContext().getContentResolver().openOutputStream(uri);
outputStream.flush();
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return uri;
}
此方法返回图像的URI,但是当我在图库中检查图像时,它显示为 0 字节的空白图像。你能帮我解释一下为什么这个方法不能成功创建图像吗?
【问题讨论】:
标签: java android inputstream