0

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

并最终找出了原因。

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

如果我运行这个应用程序,它确实说组成员资格很差。知道我做错了什么吗?

    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)并创建了另一个组 40(myNewTestGroup)和组成员记录 1934(组 11 中的成员)似乎工作但 1933(组 40 中的成员)被破坏(导致同步失败)。

这是我在组成员记录之间查看的内容。除了预期的 _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 --- 
4

1 回答 1

0

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

于 2013-09-08T22:03:54.450 回答