【问题标题】:Android - Query contacts with phone number, return Name and Company, even if Company has not been specifiedAndroid - 使用电话号码查询联系人,返回姓名和公司,即使没有指定公司
【发布时间】:2012-06-27 03:58:55
【问题描述】:

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

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

【问题讨论】:

  • 嗨 gnub,那么您真正想要的输出是什么?据我了解,您是否想要联系人名称,即使它没有公司名称?
  • @Mukund 是的。我想要联系人姓名和公司名称(如果存在)

标签: android android-contacts


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-27
    • 2022-08-05
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多