1

从 Android 文档中,我了解到我可以将 ContactsContract.Contacts.Data.CONTENT_DIRECTORY 字符串附加到 ContactsContract.Contacts.CONTENT_URI 并能够访问联系人的字段和数据的字段。不幸的是,我在这段代码中遇到了异常

Cursor cursor = context.getContentResolver().query(
    Uri.withAppendedPath(Contacts.CONTENT_URI, Contacts.Data.CONTENT_DIRECTORY), 
    null, null, null, null);

我得到的例外是:

java.lang.IllegalArgumentException: URI: content://com.android.contacts/contacts/data, calling user: ...

我究竟做错了什么?注意:我使用的是 Android 2.1

4

1 回答 1

1

文档没有明确说明的是 ContactsContract.Contacts.Data 用于访问单个联系人的连接 Contacts 和 Data 表。它希望看到一个联系人 ID 或一个查找键。我到处找,但目前没有办法加入联系人和数据表。希望他们会增加对此的支持。看起来唯一公开的用于连接完整表的 API 是 RawContactsEntity (在这方面与 RawContacts.Entity 不同)

所以 AFAIK 的类比是:
RawContacts.Entity 是 Contacts.Data
,因为 RawContactsEntity 什么都不是。

Android 确实需要在不仅仅是 RawContacts 上添加对全表连接的支持

于 2011-06-03T15:03:09.530 回答