Неверный столбец в контактах - PullRequest
1 голос
/ 30 марта 2011

Я планирую создать cursorjoiner для моего приложения. Я хотел бы присоединиться к отображаемому имени и идентификатору электронной почты с помощью курсора. Я пытаюсь на Android 1.6.

Когда я запрашиваю список идентификаторов электронной почты, я получаю исключение:

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 голосов
/ 31 марта 2011

Контакты устарели, вместо них используйте ContactsContract .

...