AndroidがSQLiteデータベースファイル内のデータベースバージョンを保存する場所を見つけることができません。データベースバージョンは正確にどこに保存されますか?
Android.database.sqlite.SQLiteDatabase.getVersion()
を使用してバージョンを読むことができます。
内部的に、このメソッドはSQLステートメント「 PRAGMA user_version
"。 Androidソースコード から取得しました。
データベースファイルでは、バージョンはデータベースファイルの データベースヘッダー のフィールド 'user cookie'のバイトオフセット60に格納されます。
誰かが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();
}