Je ne parviens pas à trouver où Android stocke la version de la base de données dans le fichier de base de données SQLite. Où exactement la version de la base de données est-elle stockée?
Réponses:
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 obtenu à partir du code source Android .
Dans le fichier de base de données, la version est stockée au décalage d'octet 60 dans l'en- tête de base de données du fichier de base de données, dans le champ «cookie utilisateur».
Si quelqu'un cherche le 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();
}