首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何更新通话记录中条目的内容?

如何更新通话记录中条目的内容?
EN

Stack Overflow用户
提问于 2011-04-12 21:22:14
回答 3查看 4K关注 0票数 3

我想将Android Call Log中第一个条目的CallLog.Calls.TYPE字段从MISSED更新为INCOMING。我已经读过书了,开发人员参考并谷歌了这篇文章,我相当确定我的代码是正确的。但是,当我实际调用update()时,结果是没有更新任何记录。我的代码示例如下。

在你问之前:

  • 我有权限更新WRITE_CONTACTS
  • The记录(0)确实存在
  • 我已经在DroidX (威瑞森)和三星Galaxy (AT&T)上都尝试过了-我已经尝试了各种其他更长形式的代码,结果相同

有人能帮个忙吗?

代码语言:javascript
运行
复制
    ContentValues newValues = new ContentValues();
    newValues.put(CallLog.Calls.TYPE, CallLog.Calls.INCOMING_TYPE);
    newValues.put(CallLog.Calls.DURATION, 50);
    int result = OsmoService.context.getContentResolver().update(
    ContentUris.withAppendedId(CallLog.Calls.CONTENT_URI, 0), 
    newValues,null,null);
EN

回答 3

Stack Overflow用户

发布于 2011-04-27 02:22:56

如果您更新上面的代码并替换行:

代码语言:javascript
运行
复制
ContentUris.withAppendedId(CallLog.Calls.CONTENT_URI, 0)

使用这一行:

代码语言:javascript
运行
复制
Uri.parse("content://call_log/calls")

它起作用了。我不知道为什么,但是内容URI有些地方不正确。

示例:

代码语言:javascript
运行
复制
ContentValues newValues = new ContentValues();
newValues.put(CallLog.Calls.TYPE, CallLog.Calls.INCOMING_TYPE);
newValues.put(CallLog.Calls.DURATION, 50);
int result = OsmoService.context.getContentResolver().update(
    Uri.parse("content://call_log/calls"), 
    newValues,
    null,
    null);
票数 1
EN

Stack Overflow用户

发布于 2015-10-26 01:49:03

代码语言:javascript
运行
复制
ContentValues cv = new ContentValues();
cv.put(CallLog.Calls.NUMBER,"7070770"); // contact number

cv.put(CallLog.Calls.TYPE,1); // type

cv.put(CallLog.Calls.DURATION, 120); // duration in second


getContentResolver().insert(CallLog.CONTENT_URI, cv);
票数 1
EN

Stack Overflow用户

发布于 2018-03-21 17:37:16

例如CallLog.Calls.CACHED_NAME

代码语言:javascript
运行
复制
private void updateCachedName(int id, @NonNull String name) {

    ContentValues contentValues = new ContentValues();
    contentValues.put(CallLog.Calls.CACHED_NAME, name);

    if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_CALL_LOG) == PackageManager.PERMISSION_GRANTED) {

        getContext().getContentResolver().update(CallLog.Calls.CONTENT_URI, contentValues, CallLog.Calls._ID + "=" + id, null);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5635874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档