Я ранее хранил базу данных sqlite в папке с ресурсами приложений, но теперь переместил базу данных на внешнее хранилище.Открытие базы данных с внешнего хранилища Android
Мой предыдущий copyDatabase()
метод выглядел так.
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;
}
}
}
Вопрос в том, что я не уверен, как создать InputStream
для открытия базы данных из внешнего хранилища. Я не могу найти внешний эквивалент хранения для myContext.getAssets().open(DATABASE_NAME);
Текущего путь к базе данных:
DB_PATH = Environment.getExternalStorageDirectory().getPath().toString()+"/SoulInfoDatabase/BB2SoulDatabase.db";
Возможно, вы захотите взглянуть на [базу данных SQLite на SD-карте] (http://stackoverflow.com/questions/4806181/sqlite-database-on-sd-card), поскольку это может обеспечить решение. – MikeT
Возможный дубликат [Отправка приложения с помощью базы данных] (http://stackoverflow.com/questions/513084/ship-an-application-with-a-database) –