Androidでコンテンプロバイダを使い連絡帳からグループ検索
はてダはからの移行記事。
Androidアプリを勉強がてら開発中。ガラケーでもよくみる、家族、同僚、お気にいり等のグループ分け。
これらがAndroidの連絡帳にどう登録されているかを調査中。
リファレンスを読みながら、かたっぱしから表示してみてわかったこと。
android.provider.ContactsContractのDataクラスへの検索時、
Data.MIMETYPE = GroupMembership.CONTENT_ITEM_TYPEの条件をつけると
DATA1にはGroupsの_IDが登録されていた。
ただし、Data.MIMETYPE = Groups.CONTENT_ITEM_TYPEではひっかからないという謎。
下位バージョンとの互換性のための処置なのだろうか
各クラスでよく使うと思われるメンバ
GroupMembershipクラスの主な構造:
_ID :一意のキー
<s>SOURCE_ID :Groupsクラスの_ID</s>たぶん違う
Groupsの構造クラスの主な構造:
_ID :一意のキー
TITLE :グループのタイトル(ex.System Group: Family)
ACCOUNT_NAME :グループの登録されているアカウント(ex.xxx@google.com)
となっているように思える。
つまり、グループ「家族」で登録した連絡先の一覧を表示したい場合。
1,Groups.TITLEが「System Group: Family」の_IDを取得
2,Dataへの検索条件を、Data.MIMETYPE = GroupMembership.CONTENT_ITEM_TYPEとData.DATA1 = 「1で取得したID」とする。
ひとまずこれで家族グループに登録した連絡先が表示された。
・・・ほんとにこれでいいのか。