【问题标题】:What's the proper way to insert a row into ContentResolver将行插入 ContentResolver 的正确方法是什么
【发布时间】:2017-01-02 19:00:20
【问题描述】:

这是我在 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,但它返回的却是这样的 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的文件

【问题讨论】:

    标签: android android-contentresolver


    【解决方案1】:

    什么是让它尊重我为它设置的名字的正确方法 图片?

    Query ContentProvider 使用URIMediaColumns.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);
    

    【讨论】:

    • 这是 100% 正确的,但标题似乎不是要在插入时存储在内容解析器上的文件名?如何设置结束文件名?如果我得到DATA 列我有storage/emulated/0/Pictures/1483385168489.jpg
    • 我的另一个问题是:content://media/external/images/media/1546 是什么?
    • @StackOverflower: 1546 是您插入的 contentProvider 数据库中的图像自动生成的 ID。
    • @StackOverflower: 你也可以使用File类从storage/emulated/0/Pictures/1483385168489.jpg获取文件名
    • 最后一个问题 -> 请注意,我正在尝试将文件名设置为像 yyyyMMdd_HHmmss 这样的日期格式。创建的文件不尊重这一点。这是这个谜题中唯一遗漏的部分。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-05-15
    • 2014-02-17
    • 2019-10-23
    • 2022-01-10
    • 1970-01-01
    • 2023-04-02
    • 2019-12-20
    • 1970-01-01
    相关资源
    最近更新 更多