我目前正在嘗試查詢所有聯繫人並將其存儲到數據庫中。但是,我意識到這個問題,如果我的聯繫人有多個號碼,它會返回相同的聯繫人姓名和其他多個號碼。但是如果我的聯繫人有電子郵件,查詢將複製相同的姓名和相同的號碼。我可以知道我該如何解決這個問題?我只想存儲一次名稱和編號。我不希望與電子郵件有任何關係。Android查詢和商店聯繫人重複號碼
我設法通過定義我只想要TYPE_MOBILE來獲得移動號碼。但是,我意識到,如果我的聯繫人使用Google +,則查詢會重複相同的姓名和相同的號碼。任何人都可以引導我沿着這條線嗎?謝謝!
這裏是我使用的代碼:
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext()) {
int phoneType = phones.getInt(phones.getColumnIndex(Phone.TYPE));
if (phoneType == Phone.TYPE_MOBILE)
{
mobile = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA));
mobile = mobile.replaceAll("\\s", "");
id = phones.getString(phones.getColumnIndex(ContactsContract.Contacts._ID));
name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
long idL = DbHelper.createContact(name, "", mobile, "", id);
if (idL > 0) {
mRowId = idL;
}
}
phones.close();
}
因爲我正在嘗試做一個類似於Viber的聯繫人列表。如果聯繫人具有相同的應用,我正試圖在聯繫人旁邊顯示我的應用圖標。否則,你有任何其他建議嗎? :) – user1321096 2012-07-05 09:16:50
所以,只保存聯繫人列表中的號碼。嘗試使用身份證號碼處理您的應用。如果你不想複製數字,可以將它們複製到一個數組列表中,並在獲取它們時檢查數組是否包含數字。之後,將數字ID保存到您的分機號碼 – bmavus 2012-07-05 17:18:23
嗨,現在我可以檢查手機類型,然後保存手機號碼。但是我意識到,如果聯繫人使用Google +,該號碼仍會重複。有關如何解決此問題的任何想法?我會很快更新我的代碼。 – user1321096 2012-07-12 07:21:16