2013년 10월 22일 화요일

안드로이드 주소록 그룹 관련 정보

안드로이드 기본 주소록 관련 함수

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로 삭제 쿼리를 수행하도록 한다.


댓글 없음: