Привет, я пытаюсь создать новую группу gmail и добавить в нее контакт. Мне удалось создать группу, но контакты не добавляются в нее. Я прочитал много ответов в stackoverflow, но ничего не получилось. Я не могу понять, где я ошибся. Я публикую свой код здесь, пожалуйста, помогите.
Создание группы
public String createGroupInPhone() {
String[] GROUP_PROJECTION = new String[]{ContactsContract.Groups._ID, ContactsContract.Groups.TITLE};
ContentValues contentValues = null;
try {
ContentResolver cr = this.getContentResolver();
contentValues = new ContentValues();
contentValues.put(ContactsContract.Groups.TITLE, groupName);
contentValues.put(ContactsContract.Groups.SHOULD_SYNC, true);
contentValues.put(ContactsContract.Groups.GROUP_VISIBLE, 1);
contentValues.put(ContactsContract.Groups.ACCOUNT_TYPE, "com.google");
contentValues.put(ContactsContract.Groups.ACCOUNT_NAME, "[email protected]");
cr.insert(ContactsContract.Groups.CONTENT_URI, contentValues);
} catch (Exception e) {
e.printStackTrace();
}
String groupID;
Cursor getGroupID_Cursor;
getGroupID_Cursor = this.getContentResolver().query(ContactsContract.Groups.CONTENT_URI, GROUP_PROJECTION, ContactsContract.Groups.TITLE + "=?", new String[]{groupName}, null);
getGroupID_Cursor.moveToFirst();
groupID = (getGroupID_Cursor.getString(getGroupID_Cursor.getColumnIndex(ContactsContract.Groups._ID)));
String groupTitle = (getGroupID_Cursor.getString(getGroupID_Cursor.getColumnIndex(ContactsContract.Groups.TITLE)));
System.out.println("Group Title: " + groupTitle);
getGroupID_Cursor.close();
return groupID;
}
У меня есть сомнения. Как этот ContactsContract.Groups._ID связан с GROUP_ROW_ID,GROUP_SOURCE_ID
добавление контакта в новую группу
public void addContactsToPhoneGroups(String contact_id, String groupId, String groupName) {
System.out.println("ContactId: " + contact_id);
System.out.println("GroupId: " + groupId);
ArrayList<ContentProviderOperation> ops = new ArrayList<>();
ContentValues values = new ContentValues();}
values.put(ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID,
contact_id);
values.put(
ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID,
groupId);
values
.put(
ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE,
ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE);
getContentResolver().insert(
ContactsContract.Data.CONTENT_URI, values);