【发布时间】:2019-07-10 11:38:26
【问题描述】:
我无法使用LookUpKey 获取保存在某人名下的所有联系电话。我在一个人(家庭、手机和工作)下保存了三个联系号码。但是,当我使用联系人的 lookUpKey 查询联系人时,它不会获取所有已保存的联系人。
这是我的代码
ArrayList<ContactItem> contactItems = new ArrayList<>(5);
String lookUpKey = params[1];
Uri dataUri = ContactsContract.Data.CONTENT_URI;
Cursor dataCursor = mApplication.getContentResolver().query(dataUri,
null,
ContactsContract.Data.LOOKUP_KEY + " = ?",
new String[]{lookUpKey}, null);
if (dataCursor == null || !dataCursor.moveToFirst()) return contactItems;
M.logE("cursor length = " + dataCursor.getCount());
M.logE("column count = " + dataCursor.getColumnCount());
ArrayList<String> tempContacts = new ArrayList<>();
String homePhone;
String mobilePhone;
String workPhone;
while (dataCursor.moveToNext()) {
final String data2 = dataCursor.getString(dataCursor.getColumnIndex(ContactsContract.Data.MIMETYPE));
final int contactType = dataCursor.getInt(dataCursor.getColumnIndex(ContactsContract.Data.DATA2));
M.logE("Contact type = " + contactType);
if (!data2.equals(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)) {
continue;
}
if (contactType == ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE) {
mobilePhone = dataCursor.getString(dataCursor.getColumnIndex(DATA_1));
if (TextUtils.isEmpty(mobilePhone)) continue;
mobilePhone = mobilePhone.replace("-", "");
mobilePhone = mobilePhone.replace(" ", "");
if (!tempContacts.contains(mobilePhone)) {
tempContacts.add(mobilePhone);
contactItems.add(new ContactItem(mobilePhone, "Mobile"));
}
} else if (contactType == ContactsContract.CommonDataKinds.Phone.TYPE_HOME) {
homePhone = dataCursor.getString(dataCursor
.getColumnIndex(DATA_1));
if (TextUtils.isEmpty(homePhone)) continue;
homePhone = homePhone.replace("-", "");
homePhone = homePhone.replace(" ", "");
if (!tempContacts.contains(homePhone)) {
tempContacts.add(homePhone);
contactItems.add(new ContactItem(homePhone, "Home"));
}
} else if (contactType == ContactsContract.CommonDataKinds.Phone.TYPE_WORK) {
workPhone = dataCursor.getString(dataCursor
.getColumnIndex(DATA_1));
if (TextUtils.isEmpty(workPhone)) continue;
workPhone = workPhone.replace("-", "");
workPhone = workPhone.replace(" ", "");
if (!tempContacts.contains(workPhone)) {
tempContacts.add(workPhone);
contactItems.add(new ContactItem(workPhone, "Work"));
}
}
}
这有什么问题?如何使用lookUpKey 获取所有详细信息?
【问题讨论】: