请教一下大牛!有关于android 通过电话号码查询通讯录的问题。
时间: 2023-08-13 22:04:27 浏览: 268
你好,关于通过电话号码查询通讯录的问题,可以使用以下步骤进行实现:
1. 获取通讯录内容
首先,需要获取通讯录列表,可以使用ContentResolver进行访问,具体代码如下:
```
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
```
2. 查询指定号码对应的联系人信息
接下来,可以通过遍历通讯录列表,查询指定号码对应的联系人信息,具体代码如下:
```
String phoneNumber = "1234567890"; // 需要查询的电话号码
while (cursor.moveToNext()) {
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
while (phone.moveToNext()) {
String number = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
if (phoneNumber.equals(number)) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
// 查询到了对应的联系人信息
break;
}
}
phone.close();
}
```
其中,通过ContactsContract.CommonDataKinds.Phone.CONTENT_URI访问通讯录列表中所有的电话号码,通过ContactsContract.CommonDataKinds.Phone.CONTACT_ID与ContactsContract.Contacts._ID进行关联,获取对应联系人信息。
以上是通过电话号码查询通讯录的基本思路,你可以根据具体需求进行修改和扩展。
阅读全文