保存图像后未刷新 Android 图库



我正在尝试保存图像,并提醒图库有关新图像的信息。图像不会立即显示在库中,但刷新甚至可能需要几个小时。我使用以下代码:

String title = "title";
String r = MediaStore.Images.Media.insertImage(getContentResolver(), State.pictureWithDekor, title, title);
Uri uri = Uri.parse(r);
MediaScannerConnection.scanFile(this,
new String[] { uri.getPath() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("TAG", "Finished scanning " + path);
}
});

insertImager的值为content://media/external/images/media/2082,则在onScanComplete中的urinull

我做错了什么?

问题是从MediaStore.Images.Media.insertImage返回的路径不是物理路径。 要获取真实路径,请使用:

public String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(contentUri,  proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}

源:从媒体存储的 URI 获取文件名和路径

最新更新