私は連絡先をグループに多対多でマッピングしようとしています。例えば連絡先のグループを取得しますか?
、Iている場合:
- ユーザ1、グループ701、702、704
- ユーザ2に属し、無グループに属する
- ユーザ3が、グループ702 に属し
私はこのようになります関係取得するために願っています:
userID | groupID
1 | 701
1 | 702
1 | 704
3 | 702
を
私はこれを試しました:
Cursor cursor = contentResolver.query(ContactsContract.Data.CONTENT_URI, null, new String[] {
ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID,
ContactsContract.CommonDataKinds.GroupMembership.GROUP_SOURCE_ID
}, null, null, null);
しかしこれはうまくいきません。 GROUP_SOURCE_ID列は、どのグループのIDでもない奇妙な数字を返します。場合によっては、0または負の数も返します。
私は、各グループを通過し、そのグループ内のすべての連絡先を見つけることによってこれのマッピングを構築することができますが、それは多くのクエリを取るでしょう、そして、私は速く(明らかに、かなり遅い!)。
誰もこの連絡先とグループのマッピングを1つのクエリでどのように取得できるか教えてください。
ありがとうございます!連絡先データベース内のすべての連絡先のcontact_id
とgroup_id
を取得しますdataCursor
これを使用することにより
!どうもありがとうございます! DATA1が必要なことをどうやって知ったのですか?解決策を教えてくれるドキュメントがありますか?私は長い時間を探して、何も見つけられなかったので... – Verdagon
@Verdagon連絡先データベースを調べることによって –
これは初心者ができるはずのものですか?そうでない場合は、どうすればいいのか教えてください。記事を書くことができますか? – Verdagon