我正在运行Android SDK中的Contact Manager示例应用。当我向Gmail帐户添加联系人时,会将其添加为“隐身联系人”。我假设这是因为我没有告诉联系人应该分配哪个“组”。我一直在网上闲逛几天,空手而归。
我真正想要做的是将联系人添加到我选择的联系人帐户,并将联系人与所选Gmail帐户中的联系人群组相关联,这样联系人的信息就会显示在用户的联系人中。
答案 0 :(得分:1)
要使其与新的ContactsContract API一起使用,您可以将其添加到ContentProviderOperation列表中:
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID, 1)
.build());
答案 1 :(得分:0)
您定位的是哪个Android版本?您当然知道Contacts API在2.x ...
中发生了根本性的变化我遇到了隐形联系人的确切问题,但仅限于1.x.我发现解决方案是添加到内置的“我的联系人”组:
// Add to the My Contacts group
ContentValues values = new ContentValues();
values.put(GroupMembership.PERSON_ID, contact.mAndroidId);
values.put(GroupMembership.GROUP_ID, 1); // 1 is always the ID of the built-in "My Contacts" group
activity.getContentResolver().insert(GroupMembership.CONTENT_URI,values);
如果要添加到特定的用户定义组而不是“我的联系人”,则需要从Contacts.Groups
表中删除正确的GROUP_ID。