No puedo encontrar dónde almacena Android la versión de la base de datos dentro del archivo de base de datos SQLite. ¿Dónde se almacena exactamente la versión de la base de datos?
Respuestas:
Puede leer la versión usando android.database.sqlite.SQLiteDatabase.getVersion()
.
Internamente, este método ejecuta la instrucción SQL " PRAGMA user_version
". Lo obtuve del código fuente de Android .
En el archivo de base de datos, la versión se almacena en el byte offset 60 en el encabezado de la base de datos del archivo de base de datos, en el campo 'cookie de usuario'.
Si alguien está buscando el código java para leer la versión del archivo:
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();
}