[Android] 주소록에서 이름/전화번호 가져오는 방법
출처: http://blog.naver.com/websearch/70100892837

[출처] [안로이드] 주소록에서 이름/전화번호 가져오는 방법|작성자 까미유
일반적인 안드로이드 개발 도서에는 managedQuery( People.CONTENT_URI ... ) 을 사용하라고 기술되어 있는데 People 클래스가 deprecated 되었고 ContactsContract 클래스를 사용하라고 안드로이드 문서에 기술되어 있더군요.
안드로이드 2.1 이상에서 주소록을 가져오는 기능에 대한 예제 코드는 다음과 같습니다.
private void ReadFromDB()
{
Vector<String> arrPhoneList = new Vector<String>();
Vector<String> arrNameList = new Vector<String>();
String [] arrProjection = { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME };
String [] arrPhoneProjection = { ContactsContract.CommonDataKinds.Phone.NUMBER };
Cursor clsCursor = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, arrProjection, ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1" , null, null );
while( clsCursor.moveToNext() )
{
String strContactId = clsCursor.getString( 0 );
Cursor clsPhoneCursor = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, arrPhoneProjection
, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + strContactId, null, null );
while( clsPhoneCursor.moveToNext() )
{
// 이름과 전화 번호를 각각의 리스트에 저장한다.
arrNameList.add( clsCursor.getString( 1 ) );
arrPhoneList.add( clsPhoneCursor.getString( 0 ) );
}
clsPhoneCursor.close();
}
clsCursor.close( );
// QQQ: 이름과 전화 번호를 화면에 보여준다. - 이 부분은 원하시는 코드를 추가하시면 됩니다.
}
[참고자료] http://stackoverflow.com/questions/1721279/how-to-read-contacts-on-android-2-0