레이블이 그룹인 게시물을 표시합니다. 모든 게시물 표시
레이블이 그룹인 게시물을 표시합니다. 모든 게시물 표시

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