Estoy intentando copiar la base de datos de la carpeta de activos en el dispositivo. Este código funciona bien en emulador y dispositivo rooteado. Solo quiero saber si crea algún problema en un dispositivo sin raíz o funcionará igual.Copiar la base de datos de la carpeta de activos en un dispositivo sin raíz
private void StoreDatabase() {
File DbFile = new File(
"data/data/packagename/DBname.sqlite");
if (DbFile.exists()) {
System.out.println("file already exist ,No need to Create");
} else {
try {
DbFile.createNewFile();
System.out.println("File Created successfully");
InputStream is = this.getAssets().open("DBname.sqlite");
FileOutputStream fos = new FileOutputStream(DbFile);
byte[] buffer = new byte[1024];
int length = 0;
while ((length = is.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
System.out.println("File succesfully placed on sdcard");
// Close the streams
fos.flush();
fos.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Si el fragmento de código funciona perfectamente en dispositivos sin raíces también :) –