-2
電話から連絡先リストを取得して重複を避けたい。私はそれがGoogleアカウント、電話またはSIMからの連絡先を取得していると思います。重複した連絡先を避ける方法。連絡先は同じ番号を持つことができますが、番号は異なります。同じ名前と同じ番号がリストに表示されるべきではありません。 これがコードです。電話機から重複を避けて別個の一意の連絡先を取得する
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();
}