Es posible copia de seguridad y restaurar un archivo de base de datos en android? Dispositivos no root

En mi aplicación necesito obtener una copia de seguridad de mi base de datos, pero después de que necesito restaurarlo de nuevo,

He leído algo, pero no estoy seguro de si esto es necesario tener un dispositivo de raíz, necesito copia de seguridad / restaurar todos los datos en dispositivos no root, ¿es posible?

Mi primera idea fue crear un archivo txt para escribir la selección, y luego insertarlo de nuevo.

Pero creo que esto es mucho "problema", entonces no sé si esto es posible copiar la base de datos y pegar en la tarjeta SD para copia de seguridad, y copia de la tarjeta SD y pegar en la ruta de la base de datos para la restauración de los dispositivos no root.

Aquí hay un código para que funcione

private void importDB() { try { File sd = Environment.getExternalStorageDirectory(); File data = Environment.getDataDirectory(); if (sd.canWrite()) { String currentDBPath = "//data//" + "<package name>" + "//databases//" + "<database name>"; String backupDBPath = "<backup db filename>"; // From SD directory. File backupDB = new File(data, currentDBPath); File currentDB = new File(sd, backupDBPath); FileChannel src = new FileInputStream(backupDB).getChannel(); FileChannel dst = new FileOutputStream(currentDB).getChannel(); dst.transferFrom(src, 0, src.size()); src.close(); dst.close(); Toast.makeText(getApplicationContext(), "Import Successful!", Toast.LENGTH_SHORT).show(); } } catch (Exception e) { Toast.makeText(getApplicationContext(), "Import Failed!", Toast.LENGTH_SHORT) .show(); } } private void exportDB() { try { File sd = Environment.getExternalStorageDirectory(); File data = Environment.getDataDirectory(); if (sd.canWrite()) { String currentDBPath = "//data//" + "<package name>" + "//databases//" + "<db name>"; String backupDBPath = "<destination>"; File currentDB = new File(data, currentDBPath); File backupDB = new File(sd, backupDBPath); FileChannel src = new FileInputStream(currentDB).getChannel(); FileChannel dst = new FileOutputStream(backupDB).getChannel(); dst.transferFrom(src, 0, src.size()); src.close(); dst.close(); Toast.makeText(getApplicationContext(), "Backup Successful!", Toast.LENGTH_SHORT).show(); } } catch (Exception e) { Toast.makeText(getApplicationContext(), "Backup Failed!", Toast.LENGTH_SHORT) .show(); } } 
  • Cómo recuperar datos de la tabla secundaria con CursorLoader que carga datos de la tabla principal?
  • Almacenamiento en caché de datos para aplicaciones móviles de iOS / Android para trabajar con Pagination
  • ¿Cómo eliminar todos los registros de la tabla en sqlite con Android?
  • Sqlite db update
  • ¿Cómo determinas si una .sqlite o .sqback está dañada en Java?
  • Orden de índices de columna SQLite crea tabla
  • Aplicación Android phonegap que tiene problemas con SQlite y almacenamiento local en dispositivos Samsung Galaxy
  • Archivo JSON VS SQLite android
  • Android: ¿Qué tan segura es la base de datos con la aplicación
  • Android / java Sqlite: ¿Cómo recuperar la fecha máxima?
  • ¿Por qué utilizar SQLiteOpenHelper sobre SQLiteDatabase?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.