1. ホーム
  2. sqlite

[解決済み] Android - SQliteデータベースのプルandroidデバイス

2022-10-27 23:27:58

質問

あらゆるところを探しましたが、本当に正確な答えや、もし可能であればその方法についてのチュートリアルを見つけることができません。

Android デバイスを root 化することなく、何らかの方法でデータベースを引き出すことは可能ですか? PC でデータを収集するために何らかの方法でデータを抽出する必要がありますが、どのようにこれを実行できますか?

どのように解決するのですか?

望むものを実現するための一般的な方法は、ADB pull コマンドを使用することです。

ほとんどの場合、私が好むもうひとつの方法は、SD カードにコードでデータベースをコピーすることです。

try {
    File sd = Environment.getExternalStorageDirectory();

    if (sd.canWrite()) {
        String currentDBPath = "/data/data/" + getPackageName() + "/databases/yourdatabasename";
        String backupDBPath = "backupname.db";
        File currentDB = new File(currentDBPath);
        File backupDB = new File(sd, backupDBPath);

        if (currentDB.exists()) {
            FileChannel src = new FileInputStream(currentDB).getChannel();
            FileChannel dst = new FileOutputStream(backupDB).getChannel();
            dst.transferFrom(src, 0, src.size());
            src.close();
            dst.close();
        }
    }
} catch (Exception e) {

}

以下のように、マニフェストでSDへの書き込み権限を設定するのを忘れないようにしましょう。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />