gpt4 book ai didi

android - 使用 ContactsContract,查询匹配的姓名或电子邮件

转载 作者:行者123 更新时间:2023-11-29 23:55:48 26 4
gpt4 key购买 nike

是否可以对 ContactsContract 进行一次查询以获取一组与显示名称、电话号码或电子邮件地址匹配的联系人?

这本质上是联系人和数据“表”的连接(在引号中,因为它们只是通过界面看起来像表,但可能不是)。

换句话说,我想要一个类似于 where 的子句(稍微简化语法)

where Contacts.DISPLAY_NAME like "%?%" 
or (Data.MIMETYPE = Phone.CONTENT_ITEMTYPE
and CommonDataKinds.Phone.NUMBER like "%?%")
or (Data.MIMETYPE = Email.CONTENT_ITEMTYPE
and CommonDAtaKinds.Email.ADDRESS like "%?%")

表格的连接方式如下

Data.RAW_CONTACT_ID = RawContacts.ID and RawContacts.CONTACT_ID = Contacts.ID

我可以在没有连接的情况下将其作为单独的查询来执行,但是这样就很难对结果进行排序。我希望它们按显示名称排序。

最佳答案

如果您只想匹配姓名/电子邮件/电话,那么您可以这样做:

WHERE Data.MIMETYPE IN (StructuredName.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE, Email.CONTENT_ITEM_TYPE) 
AND Data.DATA1 LIKE "%?%"

如果您可以扩展可能的匹配字段,那么您可以将查询简化为:

WHERE Data.DATA1 LIKE "%?%"

这将匹配 CommonDataKinds.StructuredName.DISPLAY_NAME , CommonDataKinds.Email.ADDRESS , CommonDataKinds.Phone.NUMBER ,等等。

关于android - 使用 ContactsContract,查询匹配的姓名或电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50379899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com