1

アプリのcursorjoinerを作成する予定です。カーソルジョイナーを使用して、表示名と電子メールIDを結合したいと思います。私はAndroid1.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 に答える