getContentResolver().query()で指定できるURIってどんな種類があるの?
下記の記事の続編です。
Androidのコンテントプロバイダで使えるURI一覧(1)
Androidのコンテントプロバイダで使えるURI一覧(2)
Androidのコンテントプロバイダで使えるURI一覧(3)
コンテントプロバイダで使うURIに関しては、上記3記事で終わるつもりでしたが、なんとなく見つけてしまったので紹介します。
定数名が、CONTENT_URI、INTERNAL_CONTENT_URI、EXTERNAL_CONTENT_URIという名前で調べていたのですが、それ以外にもあるんですね・・・。
今回は、ブラウザ関連のURIになります。
Browser.BOOKMARKS_URI
文字通り、ブラウザのブックマークを参照するときに使用するURIになります。
APIリファレンスで、この定数の説明を見ますと、何も書かれていません・・・。
全くの空白になっています。
ブラウザのブックマークは、このURIを指定してgetContentResolver().query()メソッドで取得する以外の方法が提供されていまして、おそらく、それを使う事を推奨しているからかなと思います。
APIリファレンスを見て、一応このBrowser.BOOKMARKS_URIを使ってgetContentResolver().query()メソッドでブックマークを取得できるかどうか、試してみましたら、ちゃんと取得できました。
ブックマークの取得方法は次回の記事にて紹介します。
今回は、とりあえずURIを紹介するだけで止めておきます。
なお、このURIを使用する際は、以下のパーミッションが必要です。
com.android.browser.permission.READ_HISTORY_BOOKMARKS
書込みを行う場合は、以下のパーミッションが必要です。
com.android.browser.permission.WRITE_HISTORY_BOOKMARKS
スポンサーリンク
Browser.SEARCHES_URI
名前からして、ブラウザの検索履歴かなと思いましたが、先ほどと同じく、APIリファレンスで、この定数の説明を見ますと、何も書かれていません。
待受け画面でMenuボタンを押して、「検索」を押して、入力した検索キーワードが保存されるのかな?と思ったんですが、試しに、Browser.SEARCHES_URIを指定して、getContentResolver().query()メソッドで取得しましたが、データが何もありませんでした。
また、queryメソッドで指定するSELECTする列名(第二引数のString配列)は、Browser.SearchColumnsクラスにて定義されている定数を使ったのですが、DATE、SEARCH、URLの内、URLに関しては、そんなカラム無いよ!とSQLiteExceptionが発生しました。。。
URLを外したら処理は成功しましたが、何もありませんでした。
なお、このURIを使用する際は、以下のパーミッションが必要です。
com.android.browser.permission.READ_HISTORY_BOOKMARKS
今回は、URIの紹介という事で、ちょっと内容は薄いかもしれませんが、後日、Browserクラスの各メソッドについて検証して説明をしていきたいと思います。
なお、コンテントプロバイダで使えるURI一覧の他の記事は下記です。
Androidのコンテントプロバイダで使えるURI一覧(1)
Androidのコンテントプロバイダで使えるURI一覧(2)
Androidのコンテントプロバイダで使えるURI一覧(3)