联系人中的列无效

时间:2011-03-30 08:16:43

标签: android contacts android-1.6-donut

我打算为我的应用创建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);

任何人都可以告诉我应该在投影中使用哪个参数来实现这一目标。

1 个答案:

答案 0 :(得分:0)

Contacts已弃用,请改用ContactsContract