2010-09-14 9 views

Répondre

180

Vous pouvez lire la version en utilisant android.database.sqlite.SQLiteDatabase.getVersion().

En interne, cette méthode exécute l'instruction SQL "PRAGMA user_version". Je l'ai eu du Android source code.

Dans le fichier de base de données, la version est stockée au décalage d'octet 60 dans le fichier de base de données database header, dans le champ 'cookie utilisateur'.

+0

qui était utile, mais ma question est d'où vient cette information version sont stockés sur le système de fichiers (ou peut-être dans le fichier de base de données) ? – bhups

+9

Il est stocké dans l'en-tête de la base de données (j'ai mis à jour ma réponse). –

+3

Et pour le lire et le modifier http://stackoverflow.com/questions/8030779/change-sqlite-database-version-number –

6

Si quelqu'un est à la recherche du code Java pour lire la version du fichier:

private static int getDbVersionFromFile(File file) throws Exception 
{ 
    RandomAccessFile fp = new RandomAccessFile(file,"r"); 
    fp.seek(60); 
    byte[] buff = new byte[4]; 
    fp.read(buff, 0, 4); 
    return ByteBuffer.wrap(buff).getInt(); 
} 
Questions connexes