2012-06-23 3 views
2

J'ai une base de données sur mon espace web. Maintenant, je veux télécharger cette base de données et le copier dans mon dossier/databases. Il copie certaines parties de la base de données mais je ne peux pas y accéder. Avec « Root Explorer », il dit « Erreur -. Une erreur est survenue lors de l'ouverture de la base de données ne peut pas ouvrir le fichier de base de données »Copier la base de données du serveur vers Android

private final static String DB_NAME = "werweisswasquiz"; 
private final static String DB_PATH = "data/data/my-package-name/databases/"; 


try { 
     // Log.d(TAG, "downloading database"); 
     URL url = new URL("http://unnediger.bplaced.net/Files/mydbfile"); 
    URLConnection ucon = url.openConnection(); 
    InputStream is = ucon.getInputStream(); 
    BufferedInputStream bis = new BufferedInputStream(is); 

    ByteArrayBuffer baf = new ByteArrayBuffer(1024); 
    int current = 0; 
    while ((current = bis.read()) != -1) { 
     baf.append((byte) current); 
    } 

    /* Convert the Bytes read to a String. */ 
    OutputStream myOutput = new FileOutputStream(DB_PATH+DB_NAME); 
    myOutput.write(baf.toByteArray()); 
    myOutput.flush(); 
    myOutput.close(); 
    bis.close(); 
    is.close(); 
} catch (Exception e) { 
    Log.e("DOWNLOAD", "downloadDatabase Error: ", e); 
    return false; 
} 
+0

Le fichier est-il chiffré? – Rajesh

+0

oui certaines colonnes sont cryptées. mais pas toute la base de données. – androiddevjedi

+0

La base de données n'a pas pu être ouverte à partir de SQLite Manager. Donc je suppose que vous devrez déchiffrer la base de données ou utiliser les mêmes méthodes de déchiffrement, que vous avez utilisées pour chiffrer le contenu, pour y accéder dans Android. – Rajesh

Répondre

6

donc j'ai finalement trouvé la solution par moi-même.

Le serveur a pensé que le fichier "mydbfile" est un fichier txt, j'ai donc ajouté l'extension ".db" pour la base de données sqlite. maintenant cela fonctionne parfaitement.

Questions connexes