我想制作像 android keypad 一样的搜索模块,它提供以数字开头的联系人列表以及以键盘用户类型的文本开头。基本上我想搜索带有显示名称和号码的联系人,因为 android 本机应用程序正在给出结果。
我已经动态地制作了正则表达式,但我唯一的问题是如何使用正则表达式查询联系人?
我想制作像 android keypad 一样的搜索模块,它提供以数字开头的联系人列表以及以键盘用户类型的文本开头。基本上我想搜索带有显示名称和号码的联系人,因为 android 本机应用程序正在给出结果。
我已经动态地制作了正则表达式,但我唯一的问题是如何使用正则表达式查询联系人?
Android 不支持这种查询联系人列表的方式,但在我看来,以标准方式读取所有联系人信息并丢弃与您的正则表达式不匹配的结果是实用且容易的。
你有没有尝试过:
String search = "%" + search_term + "%";
getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[] {
Phone._ID,
Phone.CONTACT_ID ,
Phone.NUMBER,
Phone.TYPE,
Phone.DISPLAY_NAME},
Phone.DISPLAY_NAME + " LIKE ? OR " + Phone.NUMBER + " LIKE ?",
new String[] { search, search },
Phone.DISPLAY_NAME);
}