Contacts API 를 이용하여 연락처 정보 가져오기
private void LoadContacts() {
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.HAS_PHONE_NUMBER };
Cursor cursor = managedQuery(uri, projection, null, null, null);
ContactItem item = null;
if (cursor.getCount() > 0) {
while (cursor.moveToNext()) {
if (cursor.getInt(2) == 1)
LoadPhoneNumbers(cursor.getString(0));
}
}
}
ContactsContract.Contacts.CONTENT_URI 를 이용하여 id 와 name 을 가져온다.
HAS_PHONE_NUMBER 의 결과값이 1일 경우 id 를 넘겨서
ContactsContract.CommonDataKinds.Phone.CONTENT_URI 를 이용하여
해당 id의 전화번호를 가져온다.
private void LoadPhoneNumbers(String id) {
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.CommonDataKinds.Phone.TYPE,
ContactsContract.CommonDataKinds.Phone.NUMBER
};
String selection = ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?";
Cursor cursor = managedQuery(uri, projection, selection, new String[] {id}, null);
while (cursor.moveToNext()) {
Log.w(TAG, "Number Type ==> " + cursor.getString(0));
Log.w(TAG, "Number ==> " + cursor.getString(1));
}
}
타입별로 전화번호를 가져오는 방법은 대략 다음과 같이 하면 될 것 같다.
private String getNumberType(int type) {
String numberType = null;
switch (type) {
case Phone.TYPE_MOBILE:
numberType = "mobile";
break;
case Phone.TYPE_HOME:
numberType = "home";
break;
......
}
return numberType;
}
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드] getResources().getDrawable(id) Out of Memory 오류 (0) | 2012.12.28 |
---|---|
[안드로이드] Facebook 오류 (error_code=1 Error 1349040 Invalid Application ID: The specified application ID is invalid) (0) | 2012.12.27 |
[안드로이드] JXL(JExcelAPI) 한글 안 나오는 문제 (0) | 2012.09.05 |
[안드로이드] 연락처 그룹 정보 가져오기 (0) | 2012.08.26 |
안드로이드 개발 환경 설정 요약 (0) | 2010.04.09 |