1

我正在开发一个使用 SQLite 数据库的 Android 游戏。为了验证数据库是否正确下载,我使用 MD5。它工作正常,我的问题是当我对数据库进行查询时:MD5 更改但数据库大小保持不变。如果我不插入更新,有谁知道为什么它会更改 MD5?我只做选择。有没有办法检查所有设备上的数据库是否正确?

// 安装时的 MD5->

11-10 20:04:17.722: I/DebugCayroDev(4853): {MD5.java checkMD5} 2488C4CD2F70337BA21E4CA03EDEAFF0 和文件 md5: 2488c4cd2f70337ba21e4ca03edeaff0

//大小相同

11-10 20:04:46.212: V/DebugCayroDev(4853): {MD5.java checkMD5} 2113748992

// MD5 选择之后

11-10 20:04:46.212: I/DebugCayroDev(4853): {MD5.java checkMD5} 2488C4CD2F70337BA21E4CA03EDEAFF0 和文件 md5: 67d0b72e0d375ee0c5578331c4b74802

4

1 回答 1

0

正如其他人所说,您不能依靠数据库文件的哈希来告诉您它是否已更新。

我能想到的唯一建议是向您的数据库添加一个表,该表包含数据库最后一次更新的时间戳。无论何时更新服务器端的数据库,无论何时以任何方式更新数据库,都必须更新该时间戳。

然后,您可以比较本地和服务器时间戳以查看版本是否匹配

于 2013-11-10T23:33:57.437 回答