合并原接触(Merging raw contacts)

2019-09-22 06:41发布

我有一个帐户,并同步适配器,添加具有相应的私有数据条目新的原始联系人。 我创建联系人是电话号码来,意思是我创建每个现有的电话号码的新条目。

How do I merge my raw contact with the existing raw contact that was linked to the existing phone number?

我试图创建数据表中的新电话号码输入,并将其链接到原始的接触,我加入。 它的工作原理,但它是建立一个复制电话号码。

我也试着设置了接触式ID,显示名称,secondery显示名称,但没有成功。我可以用原始的联系人更改的唯一数据是帐户名称和类型,以及列SYNC1 ... SYNC4

Answer 1:

生接触表保存每1个接触行,数据表可以保持任何数量的行中的原始表中的每一行。

要添加新的电话号码的联系人,在数据表中插入行ContactsContract.Data.RAW_CONTACT_ID设置为原始表行_id该联系人。



Answer 2:

您需要更新的AggregationExceptions表中的条目。 请参阅: http://developer.android.com/reference/android/provider/ContactsContract.AggregationExceptions.html

支持批量如果需要接合的例子的代码:

ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
Builder builder = ContentProviderOperation.newUpdate(AggregationExceptions.CONTENT_URI);
builder.withValue(AggregationExceptions.TYPE, AggregationExceptions.TYPE_KEEP_TOGETHER);
builder.withValue(AggregationExceptions.RAW_CONTACT_ID1, raw1);
builder.withValue(AggregationExceptions.RAW_CONTACT_ID2, raw2);
operations.add(builder.build());
contentResolver.applyBatch(ContactsContract.AUTHORITY, tempArrayList);


文章来源: Merging raw contacts