添加联系人到组中断同步

时间:2013-09-06 06:20:17

标签: android

更新 我发现这个问题是由于该组没有source_id(通过查看Log.d消息找到 - 来自同步适配器的消息)。 我问了一个相关问题HERE

最终找出原因。

原始问题: 我正在使用以下代码向组添加联系人。 完成后,我会看到手机上群组中的联系人,但同步失败,“同步目前遇到问题。很快就会回来。”

如果我运行这个应用程序,它确实说团队成员是坏的。 任何想法是我做错了什么?

    values = new ContentValues();
    values.put(ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE,ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE);
    values.put(ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID, 132);
    values.put(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID,  30);
    context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI,values);

更新 显示的值显然是硬编码的,并且改变了我在下面显示的内容。

我手动创建了一个组(11 myGroup1)并创建了另一个gorup 40(myNewTestGroup)和 组成员记录1934(组11中的成员资格)似乎有效,但1933年(组40中的成员资格)被破坏(导致同步失败)。

以下是我在groupmembership记录之间看到的内容。 除了预期的_id差异外,它们似乎相同。 关于我必须缺少什么的任何想法?正如我上面所说,我指出的应用程序确实发现了组成员身份的问题,但我不知道它是什么。

: --- begin ---
: key =  mimetype , value = vnd.android.cursor.item/group_membership
: key =  _id , value = 1934
: key =  data1 , value = 11
: key =  contact_id , value = 294
: key =  data2 , value = null
: key =  data3 , value = null
: key =  lookup , value = 1645i7c8c143a8f6bc41e.2452i1485527796.66ixxxx914
: key =  raw_contact_id , value = 132
: --- end ---

: --- begin ---
: key =  mimetype , value = vnd.android.cursor.item/group_membership
: key =  _id , value = 1933
: key =  data1 , value = 40
: key =  contact_id , value = 294
: key =  data2 , value = null
: key =  data3 , value = null
: key =  lookup , value = 1645i7c8c143a8f6bc41e.2452i1485527796.66ixxxx914
: key =  raw_contact_id , value = 132
: --- end ---

And here are the group records

: key =  title , value = myGroup1
: key =  data_set , value = null
: key =  _id , value = 11
: key =  group_visible , value = 1
: key =  system_id , value = null
: key =  should_sync , value = 1
: key =  notes , value = myGroup1
: key =  deleted , value = 0
: --- end ---

: --- begin ---
: key =  title , value = myNewTestGroup
: key =  data_set , value = null
: key =  _id , value = 40
: key =  group_visible , value = 1
: key =  system_id , value = null
: key =  should_sync , value = 1
: key =  notes , value = myNewTestGroup
: key =  deleted , value = 0
: --- end --- 

1 个答案:

答案 0 :(得分:0)

我发现这个问题是由于该组没有source_id(通过查看Log.d消息找到 - 来自同步适配器的消息)。我问了一个相关的问题  HERE 并最终找出了原因。