안드로이드 개발 질문/답변
(글 수 45,052)
현재
String[] projection = new String[]{
ContactsContract.CommonDataKinds.Phone.CONTACT_ID, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER,
};
String sortOrder = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
Cursor c = managedQuery(uri, projection, null, null, sortOrder);
if(c.moveToFirst()){
do{
Contact contact = new Contact(c.getString(0), c.getString(1), c.getString(2), android.R.drawable.sym_action_call);
conOrders.add(contact);
if(LogoDisplay.D)
android.util.Log.d(null, "::: " + c.getString(1) + " : " + c.getColumnCount()); }while(c.moveToNext());
}
와 같이 가져오고 있는데...
한사람이 연락처를 여러개 가지고 있을경우
연락처 개수만큼 중복되서 나오더라구요..
(ex 한사람이 3개를 가지고 있다면 같은 이름이 3번 나옴)
연락처를 이렇게 가져올 수 밖에없나요..?
이름으로 판별해서 이름이 같으면 묶어줘야 하려나요..?





이름이 아닌 ContactsContract.CommonDataKinds.Phone.CONTACT_ID 으로 묶어줘야 합니다.
이 방법 말고 Contacts에 접근해서 가져오는 방법도 있는데... 그건 cursor를 N번 날려야하므로 이 방법이 최선인것 같네요~