1

我打算为我的应用程序创建 cursorjoiner。我想使用 cursorjoiner 加入显示名称和电子邮件 ID。我正在尝试使用 Android 1.6。

当我查询电子邮件 ID 列表时,我得到一个例外:

03-30 13:08:15.609: ERROR/AndroidRuntime(302): Caused by: java.lang.IllegalArgumentException: Invalid column person

我的代码如下

String[] projection1 = new String[] {
People._ID,
People.DISPLAY_NAME
} ;

String[] projection2 = new String[] {
    Contacts.ContactMethods.PERSON_ID,
    Contacts.ContactMethods.DATA
} ;

Cursor cur = cr.query(People.CONTENT_URI, projection1, null, null, null);
Cursor emailCur = cr.query( Contacts.ContactMethods.CONTENT_EMAIL_URI, 
                                projection2, 
                                null, null, null); 

我检查了它说PERSON_ID是有效条目的文档。

此外,如果我在查询中使用相同的列作为参数,它可以工作。

emailCur = cr.query( Contacts.ContactMethods.CONTENT_EMAIL_URI,
                     projection2, 
                     Contacts.ContactMethods.PERSON_ID + " = ?", 
                     new String[]{id}, null);

谁能告诉我应该在投影中使用什么参数来实现这一点。

4

1 回答 1

0

联系人已折旧,请改用ContactsContract

于 2011-03-31T05:28:58.200 回答