Hallo,
ich habe eine SQLite Datenbank die sich in /data/data/com.example.prototyp/database/mydb.dat befindet. Diese Datenbank wollte ich jetzt irgendwie „sichern“, sodass ich problemlos an meiner Datenbank herumspielen kann und die ursprüngliche Datenbank wieder aufspielen kann. Da ich nur über Root-Rechte auf die Datenbank zugreifen kann, wollte ich mein Handy rooten, um die Datenbank aus dem Ordner rauskopieren zu können. Das ist meinem China Handy (Blackview A7) leider nicht so ganz leicht.
Bei meinem Droid4X-Emulator war das kein Problem. Nun habe ich mir gedacht, dass ich mir die Datei doch sicherlich irgendwie mit Java in ein anderes Verzeichnis (bei dem ich auch ohne Root-Rechte zugriff habe) verschieben bzw. kopieren kann.
Mit folgendem Code habe ich das versucht:
Das funktioniert leider nicht. Die Datenbank wird nicht gefunden. Der Pfad sollte aber korrekt sein. In der Manifest habe ich die entsprechende Berechtigung hinzugefügt:
Kann mir jemand bei meinem Vorhaben helfen ? Villeicht geht es ja auch auf eine andere Weise. Das Hauptziel ist, dass ich meine Datenbank sichern kann, damit ich die Datensätze nicht immer wieder neu einpflegen muss.
Ich bedanke mich
ich habe eine SQLite Datenbank die sich in /data/data/com.example.prototyp/database/mydb.dat befindet. Diese Datenbank wollte ich jetzt irgendwie „sichern“, sodass ich problemlos an meiner Datenbank herumspielen kann und die ursprüngliche Datenbank wieder aufspielen kann. Da ich nur über Root-Rechte auf die Datenbank zugreifen kann, wollte ich mein Handy rooten, um die Datenbank aus dem Ordner rauskopieren zu können. Das ist meinem China Handy (Blackview A7) leider nicht so ganz leicht.
Mit folgendem Code habe ich das versucht:
Code:
try {
File backupDB = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "mydb.dat");
File currentDB = getApplicationContext().getDatabasePath("/data/data/com.example.prototyp/database/mydb.dat");
if (currentDB.exists()) {
FileInputStream fis = new FileInputStream(currentDB);
FileOutputStream fos = new FileOutputStream(backupDB);
fos.getChannel().transferFrom(fis.getChannel(), 0, fis.getChannel().size());
fis.close();
fos.close();
Log.i("Database successfully", " copied to download folder");
} else Log.i("Copying Database", " fail, database not found");
} catch (IOException e) {
Log.d("Copying Database", "fail, reason:", e);
Das funktioniert leider nicht. Die Datenbank wird nicht gefunden. Der Pfad sollte aber korrekt sein. In der Manifest habe ich die entsprechende Berechtigung hinzugefügt:
Code:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Ich bedanke mich