我有一个帐户,并同步适配器,添加具有相应的私有数据条目新的原始联系人。 我创建联系人是电话号码来,意思是我创建每个现有的电话号码的新条目。
How do I merge my raw contact with the existing raw contact that was linked to the existing phone number?
我试图创建数据表中的新电话号码输入,并将其链接到原始的接触,我加入。 它的工作原理,但它是建立一个复制电话号码。
我也试着设置了接触式ID,显示名称,secondery显示名称,但没有成功。我可以用原始的联系人更改的唯一数据是帐户名称和类型,以及列SYNC1 ... SYNC4
生接触表保存每1个接触行,数据表可以保持任何数量的行中的原始表中的每一行。
要添加新的电话号码的联系人,在数据表中插入行ContactsContract.Data.RAW_CONTACT_ID
设置为原始表行_id
该联系人。
您需要更新的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);