Como copio db populado para o android 4.4 usando phonegap

  • Respostas:0
Delliany Miranda
  • Posts no fórum: 1

10/07/2014, 03:00:55 via Web

Não consigo copia um banco populado que etá no assets para a mémoria do celular na versão android 4.4 usando phonegap, na primeira vez que é executado, mas se eu fechar o aplicativo e abra-o novamente, consigo fazer a cópia.

Eu tenho um 0000000000000001.db no assets e quero colocar isso em na memória do celular.

Estou usando este código para fazer a cópia do banco de dados.

public void copyDatabase()
{

//DB_NAME2 = "Databases.db";
//ASSETS = "0000000000000001.db";
//DB_PATH2 = "/data/data/com.example.testapp/app_webview/databases/";
//DB_PATH3 = "/data/data/com.example.testapp/app_webview/databases/file__0/";
//DB_NAME3 = "1";

String path = DB_PATH2 + DB_NAME2;
String path2 = DB_PATH3 + DB_NAME3;
File checkDatabase = new File(DB_PATH2);
File checkDatabase2 = new File(DB_PATH3);

if (!checkDatabase.exists())
{   
    checkDatabase.mkdir();
}
if (!checkDatabase2.exists())
{ 
    checkDatabase2.mkdir();
}
try{

    InputStream is = context.getAssets().open(DB_NAME2);
    OutputStream os = new FileOutputStream(path);
    InputStream is2 = context.getAssets().open(ASSETS);
    OutputStream os2 = new FileOutputStream(path2);

    byte[] buffer = new byte[10240];
    int line;

    while ((line = is.read(buffer))>0)
    {
        os.write(buffer, 0, line);
    }

    os.flush();
    os.close();
    is.close(); 

    buffer = new byte[10240];
    line = 0;

    while ((line = is2.read(buffer))>0)
    {
        os2.write(buffer, 0, line);
    }

    os2.flush();
    os2.close();
    is2.close(); 
}catch(IOException e){
    System.out.println("Problem "+e);
}
}

Responder