###目的
Android端末内にあるデータベースファイルを、PCとUSB接続することでバックアップをとれるようにしたい。
また、後々は、逆にインポートによる読込もしたい。
###実現したいこと
Androidでデータベースを使用したアプリを開発しています。
データベースファイルを外部ストレージにコピーしたいです。
なお、データベースファイルの存在は、ターミナルから確認済みです。
参考:端末にあるデータベースの中身を見る方法
###該当のソースコード
SQLiteOpenHelperを継承したクラスは以下のようにしており、Activityクラスからのデータ操作は何ら問題なく行えております。
このようにして作成したデータベースファイルは、どのようにして外部ストレージにコピーすればよいのか教えていただきたいです。
よろしくお願いいたします。
Java
1public class DBhelper extends SQLiteOpenHelper { 2 static final private String DBNAME = "sample.sqlite"; 3 static final private int VERSION = 1; 4 5 public DBhelper(Context context) { 6 super(context, DBNAME, null, VERSION); 7 } 8 9 @Override 10 public void onOpen(SQLiteDatabase db) { 11 super.onOpen(db); 12 } 13 14 @Override 15 public void onCreate(SQLiteDatabase db) { 16 db.execSQL("CREATE TABLE sample_test (" + 17 "_id INTEGER PRIMARY KEY, " + 18 "testTEXT TEXT)"); 19 } 20 21 @Override 22 public void onUpgrade(SQLiteDatabase db, int old_v, int new_v) { 23 db.execSQL("DROP TABLE IF EXISTS sample_test"); 24 onCreate(db); 25 } 26}
また、マニフェストファイルにパーミッションの記述はしております。
###試したこと
参考にさせていただいたサイトを数個挙げます。
AndroidのデータベースファイルをSDカードにコピーする方法
→「FAILED_TO_CREATE_PATH_ON_SD」と出てきてしまう
SDカードにファイルを保存する
→データベースファイルについてではない
SQLiteのDBファイルをSDにコピー
→「フォルダの作成に失敗しました」と出てきてしまう。mkdir()が成功していない模様。
Androidでmkdir()を実行してみる
→ここを参考に、「/storage/sdcard/Android/data/{プロジェクトパッケージ}/"testtest"」としても上手くいかず。
###補足情報(言語/FW/ツール等のバージョンなど)
AndroidStudio 2.3.1
エミュレータのAPI 24
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/30 18:07 編集
2017/04/30 17:41
2017/04/30 23:22
2017/04/30 23:25
2017/05/01 04:02
2017/05/01 05:21 編集
2017/05/01 06:20
2017/05/01 06:57
2017/05/01 12:45