Действительно ли возможно выбрать пользовательское местоположение для sqlite файла базы данных?
Если возможный я хочу хранить файл базы данных в карте памяти. И если пользователь переключается от одной карты памяти до другого, я хочу, чтобы мое приложение использовало безотносительно версии файла базы данных, доступного на карте.
По умолчанию ваша база данных хранится в data/data/your_package/databases
Вы можете использовать SQLiteDatabase
openOrCreateDatabase
где в качестве первого аргумента вы можете указать путь к вашей пользовательской базе данных.
Вы можете получить доступ к базе данных, хранящейся на вашей sdcard, используя:
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
public class MyClass {
private SQLiteDatabase myDB = null;
// Constructor
public MyClass() {
try {
myDB = SQLiteDatabase.openDatabase(stPathToDB, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS|SQLiteDatabase.OPEN_READONLY);
} catch (SQLException e) {
e.printStackTrace();
}
}
// Destructor
public void finalize() {
myDB.close();
}
}
NO_LOCALIZED_COLLATORS = для открытия базы данных без поддержки локализованных коллекторов.
Для получения пути к вашей sdcard вы можете использовать:
stPathToDB = android.os.Environment.getExternalStorageDirectory().toString()+"/dbase.sqlite"
Rgds. Лейн