gpt4 book ai didi

android - Android 2.0 添加联系人号码

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:16 24 4
gpt4 key购买 nike

我正在尝试向 Droid 手机上已有的联系人添加电话号码。在我创建联系人的同时执行此操作很简单,因为在创建 ContentProviderOperation 时我提供的反向引用只是 0。但是尝试通过查询这样的显示名称来查找反向引用是行不通的:

Cursor rawContactsReferenceCursor = 
contentResolver.query(Data.CONTENT_URI,
new String[]{Data.RAW_CONTACT_ID},
Data.DISPLAY_NAME+"=\""+displayName+"\"", null, null);

虽然我确实获得了原始联系人 ID,但以下代码仅生成 IndexOutOfBoundException(rawConcactReferenceID 是我从上一个查询中获得的变量):

ArrayList<ContentProviderOperation> op_list = 
new ArrayList<ContentProviderOperation>();
op_list.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, rawConcactReferenceID)
.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, testNumber)
.withValue(Phone.TYPE, Phone.TYPE_CUSTOM)
.withValue(Phone.LABEL, testLabel)
.build());
ContentProviderResult[] result =
contentResolver.applyBatch(ContactsContract.AUTHORITY, op_list);

最大的挑战是缺乏良好的文档。如果能拿到一些工作用的复制面食来学习,我会非常满意。

干杯,

最佳答案

我找到了答案。如果您想立即添加几件事,这不是原子性的,但是嘿,谁需要愚蠢的原子性?

ContentValues values = new ContentValues();
values.put(Data.RAW_CONTACT_ID, new Integer(contactId).intValue());
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, dataValue);
values.put(Phone.TYPE, Phone.TYPE_CUSTOM);
values.put(Phone.LABEL, customLabel);
Uri dataUri = getContentResolver().insert(Data.CONTENT_URI, values);

关于android - Android 2.0 添加联系人号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com