我目前正在尝试查询所有联系人并存储到数据库中。但是,我意识到这个问题,如果我的联系人有多个号码,它会返回相同的联系人姓名和其他多个号码。但如果我的联系人有电子邮件,则查询将重复相同的姓名和相同的号码。我可以知道我该如何解决这个问题吗?我只想存储名称和号码一次。我不想与电子邮件有任何关系。
通过定义我只想要 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();
}