我需要对移动设备的内部存储器或SD卡中的SQLite数据库进行脱机备份。但是我一无所知,这怎么可能。
我在SO上关注了许多线程,但是他们建议将DB的一个位置复制到另一个位置,这对我来说并不适合,也不能复制到Google Drive
。
任何指导都是宝贵的。
答案 0 :(得分:1)
我使用了这种方法。
public string DATABASE_NAME = "YOUR DATABASE NAME HERE";
public void exportDB(){
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
Log.d("TAG", "DatabaseHandler: can write in sd");
//Replace with YOUR_PACKAGE_NAME and YOUR_DB_NAME
String currentDBPath = "filepath here"+DATABASE_NAME;
//Replace with YOUR_FOLDER_PATH and TARGET_DB_NAME in the SD card
String copieDBPath = DATABASE_NAME;
File currentDB = new File(data, currentDBPath);
File copieDB = new File(sd, copieDBPath);
if (currentDB.exists()) {
Log.d("TAG", "DatabaseHandler: DB exist");
@SuppressWarnings("resource")
FileChannel src = new FileInputStream(currentDB).getChannel();
@SuppressWarnings("resource")
FileChannel dst = new FileOutputStream(copieDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
答案 1 :(得分:0)
最后,通过此GitHub sample,我成功实现了所需的任何自定义。现在就开始直播。