将一行插入 ContentResolver 的正确方法是什么

What's the proper way to insert a row into ContentResolver

这是我在 ContentResolver 中插入新行的逻辑(它是 Xamarin,但不认为它是相关的,除了某些语法对于非 C# 人员来说可能看起来很奇怪)

var contentResolver = ContentResolver;
var cv = new ContentValues();
String timeStamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
cv.Put(MediaStore.Images.Media.InterfaceConsts.Title, timeStamp);
var uri = contentResolver.Insert(MediaStore.Images.Media.ExternalContentUri, cv);

我期待 uri 反映我设置的 title 但它 returns 像这样的 uri

content://media/external/images/media/1546

我设置的标题在任何地方都不存在。我从 Insert 获得的 uri 是什么?让它尊重我为图像设置的名称的正确方法是什么?

编辑

如果我得到 MediaStore.Images.ImageColumns.Data,结果是 storage/emulated/0/Pictures/1483385168489.jpg

如果我得到 MediaStore.Images.ImageColumns.Title,结果是 20170102_165627

我希望用这个名称创建一个文件 storage/emulated/0/Pictures/20170102_165627.jpg

what's the proper way to make it honor the name I've set for the image?

Query ContentProviderURI 用于 MediaColumns.TITLE:

 // required column 
string[] proj = new[] { MediaStore.MediaColumns.TITLE };
 // query ContentProvider
ICursor cursor = contentResolver.Query(uri, proj, null, null, null);

// add null and empty check for cursor
 ....

// get column index
int column = cursor.GetColumnIndex(MediaStore.MediaColumns.TITLE);
// read title from cursor using column index
string media_title = cursor.GetString(column);