【问题标题】:Aggregated View on Contacts with ContactsContract-API使用 ContactsContract-API 的联系人聚合视图
【发布时间】:2011-02-12 23:39:04
【问题描述】:

我对这里的新 ContactsContract-API 有点犹豫。我觉得我对 API 不太了解,希望有人能给我提示。

我在文档中提到 Android 正在将多个 RawContact 聚合为所谓的“聚合联系人”。这是 2.x Androidrelease 的一个相当不错的新功能。

我无法访问此“聚合联系人”。例如,一个用户有一个普通的电话联系人,其真实姓名和电话保存在他的电话簿中,并且他与 facebookcontact 具有相同的人,具有他的昵称和他的生日。现在他加入了这两个联系人,并拥有他可以访问的真实姓名、电话生日的良好聚合联系人。

我的问题:作为开发人员,我如何才能访问这个汇总的联系人?

我想过让所有 RawContacts 与一个联系人相关联,如下所示:

 Cursor c = getContentResolver().query(RawContacts.CONTENT_URI,
      new String[]{RawContacts._ID},
      RawContacts.CONTACT_ID + "=?",
      new String[]{String.valueOf(contactId)}, null);

然后我将无法确定哪个名字是联系人的“真实姓名”和其他问题。而且我不喜欢我自己如何聚合这些 RawContacts 的其他骇人听闻的想法,因为 Android 在用户的帮助下已经完成了这项工作。

非常感谢任何提示我如何查询这些聚合联系人!

【问题讨论】:

    标签: android contactscontract


    【解决方案1】:

    如果我正确理解您的问题,ContactsContract.RawContactsEntity 可能会对您有所帮助。 Check this

    【讨论】:

    • 谢谢,“IS_PRIMARY”和“IS_SUPER_PRIMARY”可以解决我的问题:)
    • 对不起,坏消息。这显然不能解决问题。表中标记为主要或 super_primary 的那些行不包括一个聚合联系人拥有的所有信息。还有什么想法吗?
    【解决方案2】:

    这个问题现在已经在这个线程中解决了: Get all contacts and their details (e.g. postal address) in one OUTER JOIN query

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      相关资源
      最近更新 更多