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

时间:2012-06-27 03:58:56

标签: android android-contacts

如标题中所述,我想查询指定了电话号码的所有联系人,并返回仅包含联系人的显示名称和公司名称的游标。我希望每个联系人只返回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,这是一般用途字段。

对此的任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我最终使用了多个查询