Android - 使用电话号码、返回姓名和公司查询联系人,即使未指定公司也是如此



如标题中所述,我想查询所有指定电话号码的联系人,并返回仅包含联系人的显示名称和公司名称的光标。 我希望每个联系人只返回 1 行。

以下是我到目前为止提出的:

Cursor contactsCur = getContentResolver().query(
        ContactsContract.Data.CONTENT_URI,
        new String[] {ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Organization.COMPANY},
        ContactsContract.Contacts.HAS_PHONE_NUMBER + " >? AND " + Contacts.Data.MIMETYPE + " =? " ,
        new String[] {"0", ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE},
        null );

这将为每个同时指定电话号码和公司的联系人返回 1 行 - 它不包括未指定公司的联系人。

我知道它为什么这样做 - 查询的AND " + Contacts.Data.MIMETYPE + " =? "位可防止返回没有公司的任何联系。 问题是,如果没有AND部分,将为每个联系人返回多行。

这似乎是因为ContactsContract.CommonDataKinds.Organization.COMPANY实际上指的是ContactsContract.Contacts.Data.DATA1,这是一个通用领域。

任何这方面的帮助将不胜感激!

我最终为此使用了多个查询

最新更新