1. 그룹 추가
ContentValues cv = new ContentValues();
cv.put(ContactsContract.Groups.TITLE, GroupName); // String type Value, 그룹 이름
cv.put(ContactsContract.Groups.DELETED, 0);
cv.put(ContactsContract.Groups.GROUP_VISIBLE, 0);
getContentResolver().insert(ContactsContract.Groups.CONTENT_URI, cv);
2. 그룹 삭제
Uri uri = Uri.withAppendedPath(ContactsContract.Groups.CONTENT_URI, GroupId); // long type value, 그룹 아이디
getContentResolver().delete(uri, null, null);
3. 그룹 내 연락처 목록
Uri uri = ContactsContract.Data.CONTENT_URI;
String selection = ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID
+ " = "
+ GroupId // long type, 그룹 아이디
+ " AND "
+ ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE
+ " = '"
+ ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE
+ "'";
String projection[] = {...}; // 가져올 필드 삽입, 생략시 모든 필드를 출력한다.
// selectionArg 및 sortOrder 생략
getContentResolver().query(uri, projection, selection, null, null);
4. 그룹에 연락처 추가
ContentValues cv = new ContentValues();
cv .put(ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID, ContactId); // long type value, 연락처 아이디
cv .put(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID,
GroupId ); // long type value, 그룹 아이디
cv .put(ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE,
ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE);
getContentResolver().insert(ContactsContract.Data.CONTENT_URI, cv);
5. 그룹에서 연락처 삭제
getContentResolver().delete(ContactsContract.Data.CONTENT_URI, ContactsContract.Data._ID + " = ?", new String[] {String.valueOf(DataId)});
// Data Table은 Data id가 아닌 다른 것으로는 지우지 못한다.
// 어떤 조건을 가진 Row를 삭제하려면 그 조건으로 Data id를 얻은 후에
// 그 Data id로 삭제 쿼리를 수행하도록 한다.
댓글 없음:
댓글 쓰기