У меня есть приложение для Android, в котором есть функция экспорта базы данных SQLite в файл во внешнем хранилище. На моем телефоне (Redmi 4X) он работает нормально, но на других телефонах (например, Samsung SM-J105b) происходит сбой при выполнении резервного копирования.
Вот мой код для резервного копирования:
private void backupDB() throws IOException {
String backupDirectory = Environment.getExternalStorageDirectory() + "/FDRMobile/Backups/";
File backupDir = new File( backupDirectory, "");
if (!backupDir.exists()) {
backupDir.mkdirs();
}
final String inFileName = "/data/data/com.scbpfsdgis.fdrmobile/databases/FEMobile.db";
File dbFile = new File(inFileName);
FileInputStream fis = new FileInputStream(dbFile);
Date date = new Date();
DateFormat df = new SimpleDateFormat("YYYY-MM-dd_HHMMSS", Locale.getDefault());
String bakFile = "BAK_" + df.format(date) + ".db";
this.backupFileName = bakFile;
backupDirectory += bakFile;
// Open the empty db as the output stream
OutputStream output = new FileOutputStream(backupDirectory);
// Transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer))>0){
output.write(buffer, 0, length);
}
// Close the streams
output.flush();
output.close();
fis.close();
}
Я не знаю, как написать текстовый файл logcat.