Вопрос

Я не могу найти, где Android хранит версию базы данных в файле базы данных SQLite. Где именно хранится версия базы данных?

Это было полезно?

Решение

Вы можете прочитать версию, используя android.database.sqlite.SQLiteDatabase.getVersion().

Внутренне этот метод выполняет оператор SQL "PRAGMA user_version". Я получил это от Исходный код Android.

В файле базы данных версия хранится в байтовом смещении 60 в Заголовок базы данных файла базы данных, в поле «Пользовательский cookie».

Другие советы

Если кто -то ищет код Java для чтения версии из файла:

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();
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top