Ich habe zuvor eine SQLite-Datenbank in meinem App Assets-Ordner gespeichert, aber jetzt die Datenbank auf externen Speicher verschoben.Öffnen einer Datenbank von externem Speicher Android
Meine vorherige copyDatabase()
Methode sah so aus.
private void copyDataBase() throws IOException {
InputStream myInput = myContext.getAssets().open(DATABASE_NAME);
OutputStream myOutput = new FileOutputStream(DB_PATH);
byte[] buffer = new byte[AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT];
while (true) {
int length = myInput.read(buffer);
if (length > 0) {
myOutput.write(buffer, 0, length);
} else {
myOutput.flush();
myOutput.close();
myInput.close();
return;
}
}
}
Das Problem ist, ich bin nicht sicher, wie ein InputStream
zum Öffnen der Datenbank aus dem externen Speicher zu erstellen. Ich kann nicht scheinen, um die externen Speicher entspricht myContext.getAssets().open(DATABASE_NAME);
Der aktuelle Datenbankpfad zu finden:
DB_PATH = Environment.getExternalStorageDirectory().getPath().toString()+"/SoulInfoDatabase/BB2SoulDatabase.db";
Sie können sich die [SQLite-Datenbank auf SD-Karte] (http://stackoverflow.com/questions/4806181/sqlite-database-on-sd-card) ansehen, da dies die Lösung bieten kann. – MikeT
Mögliches Duplikat von [Eine Anwendung mit einer Datenbank versenden] (http://stackoverflow.com/questions/513084/ship-an-application-with-a-database) –