1

で特定のアカウントの種類が設定され、それにアタッチされているコミュニケーション アプリを作成してAccountManagerSyncAdapterます。私の連絡先のいくつかにはRawContact、新しいアカウントの MIMETYPE といくつかの関連データを持つ があります。

これらの新しいアカウントのいずれかが関連付けられている電話連絡先リスト内のすべての連絡先のリスト/カーソルを照会する正しい方法を探しています。連絡先全体を取得して、電話番号、表示名、写真の URI を取得したいのですが、新しいタイプのアカウントが関連付けられている連絡先だけが必要です。

このすべてのデータを1つのカーソルオブジェクトに取得するには、2つのテーブルをいくつかの投影または選択パラメーターと結合する必要があると感じています。これを正確に行う方法がわかりませんが、すでにさまざまなことを試しました。つまりRawContact、特定のアカウントの種類のすべての連絡先またはすべての行を取得できますが、両方を一緒にすることはできません。

ありがとう

4

1 に答える 1

3

Raw_Idアカウントの種類と名前に一致するすべての連絡先の を取得します。

    getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI,
                                 new String[]{ContactsContract.RawContacts._ID,
                                 },
                                ContactsContract.RawContacts.ACCOUNT_NAME + " = ? AND " +
                                ContactsContract.RawContacts.ACCOUNT_TYPE + " = ? ",
                                new String[]{mAcccountName,mAccountType},null
                             );

ごと_IDに、 からすべての行をフェッチし、ここContactsContract.DataContactsContract.RawContacts._ID一致ContactsContract.Data.RAW_CONTACT_IDします。

これらの行には、その連絡先に関連するすべてのデータが含まれていRaw_idます。

テーブルの構造と保持するデータについては、ドキュメントを参照してください。ContactsContract.Data

于 2012-10-29T12:13:11.920 に答える