Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 07/05/14, 20:03:10
Avatar de pyciy
pyciy pyciy no está en línea
Miembro del foro
Mensajes: 279
 
Fecha de registro: sep 2012
Localización: jaen
Mensajes: 279
Modelo de smartphone: Nexus 5
Versión de ROM: stock
Tu operador: Yoigo
Mencionado: 2 comentarios
Tagged: 0 hilos
copiar bd a paquete de la aplicacion

Hola, soy un poco pesado pero....
En mi aplicacion hago una copia de seguridad de una base de datos interna y la guardo en la sd.
Tengo una base de datos como copia de seguridad creada en la sd. Todo ok.
Ahora quiero restaurar esa base de datos a la aplicacion de nuevo, como lo hago?
Responder Con Cita


  #2  
Viejo 07/05/14, 23:37:03
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
El directorio interno de tu aplicación lo puedes sacar con el método getFilesDir() en la Activity.

A partir de ahí, para copiar un fichero a ese directorio pues lo típico, creando un InputStream sobre el fichero de origen y un OutputStream sobre el fichero de destino e ir leyendo los bytes de uno y copiarlo en el otro.
Responder Con Cita
  #3  
Viejo 09/05/14, 10:50:47
Avatar de oxot
oxot oxot no está en línea
Usuario muy activo
Mensajes: 741
 
Fecha de registro: may 2010
Localización: Santiago
Mensajes: 741
Modelo de smartphone: Xiaomi RedRice
Versión de ROM: MIUI V8
Tu operador: Pepephone
Mencionado: 2 comentarios
Tagged: 2 hilos
Tal cual te lo comenta kriogeN. Has de tener la base de datos interna abierta e ir copiando la de SD sobre la interna. Te dejo un código que usé en un pequeño programa que hice de BD:

Código:
    private void copyDataBase(String path) throws IOException
    {

        File file = new File(path, DB_NAME);
        
        InputStream inputStr = mContext.getAssets().open(DB_NAME + ".DB");
        OutputStream outStr = new FileOutputStream(file);
        byte[] buffer = new byte[1024];
        int length;
    
        try{
            while ((length = inputStr.read(buffer)) > 0)
            {
                try{
                    outStr.write(buffer, 0, length);
                }catch (IndexOutOfBoundsException e){
                    show("copyDataBase: Error while reading the array");
                }
            }
        }finally{
        outStr.flush();
        outStr.close();
        inputStr.close();
        }
    }
Aquí: DB_NAME es el nombre de la base de datos (uso el mismo para la interna que para la externa) que lo tengo en una constante.
El parámetro path de los argumentos es el destino dónde se encuentra la base de datos interna, en mi caso era: /data/data/nombre_del_paquete/databases que es dónde se guardan las BD por defecto.
Luego un simple input-output stream para ir copiando una sobre otra.

Espero te sirva. Un saludo.
Responder Con Cita
  #4  
Viejo 09/05/14, 22:13:18
Avatar de pyciy
pyciy pyciy no está en línea
Miembro del foro
Mensajes: 279
 
Fecha de registro: sep 2012
Localización: jaen
Mensajes: 279
Modelo de smartphone: Nexus 5
Versión de ROM: stock
Tu operador: Yoigo
Mencionado: 2 comentarios
Tagged: 0 hilos
Ya lo consegui, muchisimas gracias
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 14:53:05 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007