読者です 読者をやめる 読者になる 読者になる

arveltのソフトウェア技術メモ

Arvelt's software technology memo

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」とする。

 

ひとまずこれで家族グループに登録した連絡先が表示された。

 

・・・ほんとにこれでいいのか。