LAPTURE

Someone says

Android DBをAssetsに入れてアプリで使う

      2014/06/02

参照だけのDBをassetsから直接使いたいと考え、ネットの海でぐるぐる巡ってみたけど、assetから直接開くやり方はないみたい。

一旦、コピーして使うというのが常識(?)みたい。

以下は既存のDBを初めからアプリに入れておき、コピーして使うやり方。
他にもファイルを作ってSQLを流し込む的なやり方もあります。

  • assetsに既存のDBをインポート
  • assetsに入れたままでは使えないので、アプリ内の適当な場所へコピーする。
    /data/data/com.hoge.foo/files/foo.db
    ※filesではなくて普通はdatabasesらしいけど、権限の問題で書き込みできないからfilesに置く。
  • プログラム内で、コピーする記述を書く。

  • Sqlite3でDBに接続する。
    ※ 最後の引数がSQliteDatabase.NO_LOCALIZED_COLLATORSでないと怒られる。

  • データを引っ張ってくる。
    ※ whereやgroup byやorder byを別々に書くので、面倒な方はベタ書きで。

もしかしたら、DBのパスあたりは機種依存があるかもしれませんね。
適当に改造してお使いください。

 - AndroidOS, Androidアプリ , , , , ,