我有以下代码将一个组的联系人添加到
android的联系人应用程序/人员应用程序中,它确实添加了该组但不包括该组中的联系人,我缺少什么?我正在成功添加联系人也创建组,我确实得到了两个东西的ID,我使用以下代码将联系人与组关联但它不起作用,组总是空的.
public Uri addToGroup(long personId,long groupId) { ContentValues values = new ContentValues(); values.put(ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID,personId); values.put( ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID,groupId); values .put( ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE,ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE); return this.getActivity().getContentResolver().insert( ContactsContract.Data.CONTENT_URI,values); }
****更新*****
我发现的另一件事是我创建的这个组没有与谷歌同步,这可能就是联系人没有被添加的原因.
解决方法
最后可以添加一个联系人到组,这是必需的,创建一个与谷歌帐户同步的联系人(必填),第二个创建一个可以同步到默认同步服务的组,然后添加联系人我在上面的代码中添加的方式.
如果您对如何创建可以同步的组感到好奇,请点击此处
public String createGroup(String name) { String[] GROUP_PROJECTION = new String[] { ContactsContract.Groups._ID,ContactsContract.Groups.TITLE }; try { ContentValues groupValues = null; ContentResolver cr = this.getContentResolver(); groupValues = new ContentValues(); groupValues.put(ContactsContract.Groups.TITLE,name); groupValues.put(ContactsContract.Groups.SHOULD_SYNC,true); cr.insert(ContactsContract.Groups.CONTENT_URI,groupValues); } catch(Exception e){ Log.d("########### Exception :",""+e.getMessage()); return "1"; } String groupID = null; Cursor getGroupID_Cursor = null; getGroupID_Cursor = this.getContentResolver().query(ContactsContract.Groups.CONTENT_URI,GROUP_PROJECTION,ContactsContract.Groups.TITLE+ "=?",new String[]{name},null); getGroupID_Cursor.moveToFirst(); groupID = (getGroupID_Cursor.getString(getGroupID_Cursor.getColumnIndex("_id"))); return groupID; }