Copie de Base de données à partir du dossier des actifs dans les déracinés de l'appareil

Je suis en train de copier DB à partir d'un dossier des actifs à l'appareil. Ce code fonctionne bien sur Émulateur et Dispositif enracinée. Je veux juste savoir est-il de créer de problème sur les déracinés de l'appareil ou il travaillera même.

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();
        }
    }

}
Oui, votre extrait de code fonctionne parfaitement sur non racinées dispositifs de trop 🙂

OriginalL'auteur Krishnakant Dalal | 2012-05-24