В настоящее время я пытаюсь запросить все контакты и сохранить их в базе данных. Однако я понимаю эту проблему, если у моего контакта несколько номеров, он возвращает мне то же имя контакта и другие несколько номеров. Но если у моего контакта есть электронная почта, запрос будет дублировать то же имя и тот же номер. Могу ли я узнать, как мне решить эту проблему? Я хотел бы сохранить имя и номер только один раз. И я бы не хотел иметь ничего общего с электронной почтой.
Мне удалось получить только номер мобильного телефона, указав, что я хочу только 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();
}