2010-09-14 57 views

Respuesta

180

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 Android source code.

En el archivo de base de datos, la versión se almacena en el desplazamiento de bytes 60 en database header del archivo de base de datos, en el campo 'cookie del usuario'.

+0

que era útil, pero mi pregunta es ¿de dónde viene esta información de la versión se almacenan en el sistema de archivos (o puede estar en el archivo de base de datos) ? – bhups

+9

Se almacena en el encabezado de la base de datos (actualicé mi respuesta). –

+3

Y para leer y modificarlo http://stackoverflow.com/questions/8030779/change-sqlite-database-version-number –

6

Si alguien está buscando el código de 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(); 
} 
Cuestiones relacionadas