0

単一の連絡先から「メモ」を取得しようとしています。正常に追加されましたが、取得に問題がありました。

String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+" like'%" + sender +"%'";
            String[] projection = new String[] { ContactsContract.CommonDataKinds.Note.NOTE};
            Cursor c2 = getContentResolver().query(ContactsContract.Data.CONTENT_URI, projection, selection, null, null);
            if (c2.moveToFirst()) {
                notes = c2.getString(0);                    
            }

名前や電話番号などの他の値では問題なく機能しますが、メモを正しく取得できないようです。代わりに、email のようなランダムな値を取得します。

4

1 に答える 1

0

あなたの問題は、テーブルのすべての行がメモのある連絡先タイプを表しているわけではないことだと思います。適切な MIME タイプを要求する必要があります。

ContactsContract.CommonDataKinds.Note は、すべての行に存在する「data1」列のエイリアスであるため、異なる MIME タイプの行を取得すると、異なるデータを表します。

Android で連絡先を取得する方法は、これを行う方法のアイデアを提供するはずです。

于 2013-05-21T01:41:36.737 に答える