如何按姓名和电话号码搜索联系人?

时间:2021-02-10 19:34:59

标签: android contacts android-contacts

我正在使用 Contacts.CONTENT_FILTER_URI 来搜索联系人。

Uri contentUri = Uri.withAppendedPath(
                ContactsContract.Contacts.CONTENT_FILTER_URI,
                Uri.encode(searchString));

searchstring 可以是数字或名称。效果很好。
我唯一的问题是结果不包含联系电话号码。

我知道我可以通过查询 ContactsContract.Data.CONTENT_URI 来获取它。但是,我想找到一种解决方案,可以通过单个查询为我提供联系人姓名和电话号码。

1 个答案:

答案 0 :(得分:1)

您应该使用 Phone.CONTENT_FILTER_URI 而不是 Contacts.CONTENT_FILTER_URI

文档说:

<块引用>

过滤器适用于显示姓名和电话号码。

试试这个:

Uri filterUri = Uri.withAppendedPath(Phone.CONTENT_FILTER_URI, Uri.encode(searchString));
String[] projection = new String[]{ Phone.CONTACT_ID, Phone.DISPLAY_NAME, Phone.NUMBER };
Cursor cur = getContentResolver().query(filterUri, projection, null, null, null);
相关问题