안드로이드

[Android] 주소록 가져오기

SojuMan 2018. 3. 16. 17:42
 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// contacts();
GetUserContactsList();
}

public void GetUserContactsList()
{
String [] arrProjection = {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME
};
String [] arrPhoneProjection = {
ContactsContract.CommonDataKinds.Phone.NUMBER
};
// String [] arrEmailProjection = {
// ContactsContract.CommonDataKinds.Email.DATA
// };


// get user list
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 );

Log.d("Unity", "연락처 사용자 ID : " + clsCursor.getString( 0 ));
Log.d("Unity", "연락처 사용자 이름 : " + clsCursor.getString( 1 ));


// phone number
Cursor clsPhoneCursor = getContentResolver().query (
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
arrPhoneProjection,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + strContactId,
null, null
);

while( clsPhoneCursor.moveToNext() )
{
Log.d("Unity", "연락처 사용자 폰번호 : " + clsPhoneCursor.getString( 0 ));
}
clsPhoneCursor.close();


// email
// Cursor clsEmailCursor = getContentResolver().query (
// ContactsContract.CommonDataKinds.Email.CONTENT_URI,
// arrEmailProjection,
// ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + strContactId,
// null, null
// );
//
// while( clsEmailCursor.moveToNext() )
// {
// Log.d("Unity", "연락처 사용자 email : " + clsEmailCursor.getString( 0 ));
// }
// clsEmailCursor.close();


// note
// String noteWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
// String[] noteWhereParams = new String[]{
// strContactId,
// ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE
// };
//
// Cursor clsNoteCursor = getContentResolver().query (
// ContactsContract.Data.CONTENT_URI,
// null,
// noteWhere,
// noteWhereParams, null
// );

// while( clsNoteCursor.moveToNext() )
// {
// Log.d("Unity", "연락처 사용자 메모 : " + clsNoteCursor.getString(clsNoteCursor.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE)) );
// }
// clsNoteCursor.close();


// address
String addressWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
String[] addressWhereParams = new String[]{
strContactId,
ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE
};

Cursor clsAddressCursor = getContentResolver().query (
ContactsContract.Data.CONTENT_URI,
null,
addressWhere,
addressWhereParams, null
);

while( clsAddressCursor.moveToNext() )
{
// Log.d("Unity", "연락처 사용자 주소 poBox : " + clsAddressCursor.getString(clsAddressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX)) );
Log.d("Unity", "연락처 사용자 주소 street : " + clsAddressCursor.getString(clsAddressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET)) );
// Log.d("Unity", "연락처 사용자 주소 city : " + clsAddressCursor.getString(clsAddressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY)) );
// Log.d("Unity", "연락처 사용자 주소 region : " + clsAddressCursor.getString(clsAddressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION)) );
// Log.d("Unity", "연락처 사용자 주소 postCode : " + clsAddressCursor.getString(clsAddressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE)) );
// Log.d("Unity", "연락처 사용자 주소 country : " + clsAddressCursor.getString(clsAddressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY)) );
// Log.d("Unity", "연락처 사용자 주소 type : " + clsAddressCursor.getString(clsAddressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE)) );
}
clsAddressCursor.close();


// Organization
// String orgWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
// String[] orgWhereParams = new String[]{
// strContactId,
// ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE
// };

// Cursor clsOrgCursor = getContentResolver().query (
// ContactsContract.Data.CONTENT_URI,
// null,
// orgWhere,
// orgWhereParams, null
// );
//
// while( clsOrgCursor.moveToNext() )
// {
// Log.d("Unity", "연락처 사용자 회사 : " + clsOrgCursor.getString(clsOrgCursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization.DATA)) );
// Log.d("Unity", "연락처 사용자 직급 : " + clsOrgCursor.getString(clsOrgCursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE)) );
// }
// clsOrgCursor.close();

}
clsCursor.close( );
}