mucchinのAndroid戦記

Androidのコンテントプロバイダで使えるURI一覧(2)

getContentResolver().query()で指定できるURIってどんな種類があるの?

前回のAndroidのコンテントプロバイダで使えるURI一覧(1)の続きです。
まずは、Contact関連の残りから紹介していきます。

ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI

電話帳のデータにアクセスする為のURIですが、電話帳に登録している「住所」の情報を取得する為のURIになります。
以下のパーミッションが必要です。
android.permission.READ_CONTACTS

ContactsContract.CommonDataKinds.Email.CONTENT_URI

電話帳のデータにアクセスする為のURIですが、電話帳に登録している「メール」の情報を取得する為のURIになります。
以下のパーミッションが必要です。
android.permission.READ_CONTACTS

ContactsContract.Groups.CONTENT_URI

電話帳関連のデータにアクセスする為のURIだと思われますが、イマイチ用途が不明です。
皆さんが普段使用されている携帯電話では、電話帳に登録した人達を、自分で作ったグループで分ける事が出来る機能が付いているものが多いと思います。
このContactsContract.Groups.CONTENT_URIは、そんな感じで作成したグループのリストを取得できるURLかと思ったのですが、、、
Androidエミュレータで電話帳を触っていますが、どうもそれらしい機能が見当たりません。
どこかにあるのかもしれませんが、見つける事が出来ませんでした。
興味があれば調べてみてください・・・。
以下のパーミッションが必要です。
android.permission.READ_CONTACTS

ContactsContract.SyncState.CONTENT_URI

電話帳関連のURIであるとは思うのですが、、、全く用途がわかりません・・・。
一応使えたので紹介だけしておきます。
試しにレコードを取得したところ、0件でしたが、そもそも何の情報がよくわかりませんので・・・。
ちなみに、以下のパーミッションが必要です。
android.permission.READ_CONTACTS
Contact関連では一応ここまでです。


スポンサーリンク




Settings.System.CONTENT_URI

端末の様々な設定を保持しているテーブルへアクセスする為のURLです。
例えば、通知音の設定や着信音の設定などです。
単純に、名前と設定値のペアを保持しているだけだそうで、APIリファレンスを見れば簡単に使えそうです。
Android 2.1のエミュレータで、実際に取得してレコード数を確認したところ、35レコードありました。
このURIは、パーミッションは不要みたいです。

Settings.Secure.CONTENT_URI

Settings.Secureクラスの概要によると、セキュリティに関する端末の設定を取得できるとあります。
また、このSettings.Secureで取得できる情報は、読み取り専用で書き換える事はできません。
書き換えるには、専用のAPIがあるのでそれを使え、というような解釈かなと思います。
どんな設定の情報が取得できるのかというと、例えば、bluetoothがONかOFFか?とか、ローミングがONかOFFか?等の情報のようです。
ちょっと専門的な情報になるのかなと思いました。
もし興味があればAPIリファレンスをご覧下さい。
Android 2.1のエミュレータで、実際に取得してレコード数を確認したところ、20レコードありました。
このURIは、パーミッションは不要みたいです。

UserDictionary.Words.CONTENT_URI

ユーザ辞書のデータにアクセスする為のURIです。
以下のパーミッションが必要です。
android.permission.READ_USER_DICTIONARY
ちなみに、このREAD_USER_DICTIONARYは、EclipseのAndroid Manifest Editorでパーミッションを追加するPermissionsタブのパーミッションの一覧が表示されるプルダウンで表示されませんでした。
たぶんバグですね。
XMLファイルに直接記述すればOKでした。
ちなみに、今回紹介したCONTENT_URIは、UserDictionaryクラスのネストクラスであるWordsクラスの定数なのですが、UserDictionaryクラス自体にもCONTENT_URIという定数が存在します。
UserDictionary.CONTENT_URIと指定します。
しかし、コンパイルは通るのですが、実行するとIllegalArgumentExceptionがスローされました。
理由は、「そんなURIは知らない!」だそうです。
ユーザ辞書は「UserDictionary.Words.CONTENT_URI」を使いましょう・・・。


Android APIリファレンスより、「CONTENT_URI」というキーワードで検索をした結果、とりあえずは今回の記事までになります。
ちなみに、他の定数名でも同じ使い方で使えるURIが存在しますが、それは次回に。

なお、コンテントプロバイダで使えるURI一覧の他の記事は下記です。
Androidのコンテントプロバイダで使えるURI一覧(1)
Androidのコンテントプロバイダで使えるURI一覧(3)
Androidのコンテントプロバイダで使えるURI一覧(4)


スポンサーリンク

URL :
TRACKBACK URL :

Comments & Trackbacks

  • Comments ( 0 )
  • Trackbacks ( 2 )

No commented yet.

Leave a Reply

*
*
* (公開されません)

CAPTCHA


*

Return Top