¿Qué sucede si queremos que nuestra App respalde automáticamente una base de datos SQLite a la memoria microSD?
Las bases de datos SQLite son archivos completamente independientes y portátiles; uno puede simplemente copiar todo el archivo a la tarjeta microSD.
Sin embargo, podemos automatizar esta tarea utilizando el siguiente código:
try { File sd = Environment.getExternalStorageDirectory(); File data = Environment.getDataDirectory(); if (sd.canWrite()) { String currentDBPath = "//data//{nombre del paquete}//databases//{nombre de la BD actual}"; String backupDBPath = "{nombre de la nueva BD}"; File currentDB = new File(data, currentDBPath); File backupDB = new File(sd, backupDBPath); if (currentDB.exists()) { FileChannel src = new FileInputStream(currentDB).getChannel(); FileChannel dst = new FileOutputStream(backupDB).getChannel(); dst.transferFrom(src, 0, src.size()); src.close(); dst.close(); } } } catch (Exception e) { }
Este código sirve y es útil tanto para teléfonos rooteados como para aquellos que no lo están.
Es importante considerar que una vez que el archivo esté en la tarjeta microSD, ya no será privado y podría representar una brecha de seguridad.
Cuéntanos, ¿te sirvió este código? Deja tu comentario y platícanos tu experiencia.
No hay comentarios:
Publicar un comentario