-2
전화에서 연락처를 검색하여 중복을 피하고 싶습니다. 나는 그것이 Google 계정, 전화 또는 심에서 연락처를 검색하고 있다고 생각합니다. 중복 된 연락처를 피하는 방법. 연락처는 같은 번호이지만 다른 번호를 가질 수 있습니다. 동일한 이름과 동일한 번호가 목록에 나타나서는 안됩니다. 이 코드는 입니다.중복성을 피하면서 전화에서 고유하고 고유 한 연락처를 가져옵니다.
ContentResolver cr = getContentResolver();
final String[] PROJECTION = new String[] {
ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER
};
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '"
+ ("1") + "'";
//String selection = ContactsContract.Contacts.HAS_PHONE_NUMBER;
Cursor cur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, PROJECTION, selection
+ " AND " + ContactsContract.Contacts.HAS_PHONE_NUMBER
+ "=1", null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
if(cur != null) {
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String contactPhone = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String contactName = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String contactId = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
contacts.add(new Contact().setId(contactId).setName(contactName).setNumber(contactPhone));
}
}
cur.close();
}