根據SQLCipher官方網站的介紹,在「PRAGMA KEY ='testkey';」之後設置cipher_page_size。所以我創造我自己的DatabaseHelper如下:重置SQLCipher cipher_page_size導致打開數據庫錯誤
public class DatabaseHelper extends SQLiteOpenHelper {
private final static String NEWDBNAME="my.db" ;
public DatabaseHelper(Context context){
super(context, NEWDBNAME, null, 0 ,new SQLiteDatabaseHook(){
@Override
public void postKey(SQLiteDatabase arg0) {
arg0.rawExecSQL("PRAGMA cipher_page_size = 4096");
}
@Override
public void preKey(SQLiteDatabase arg0) {
}});
}
public void onCreate(SQLiteDatabase db) { }
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
public SQLiteDatabase getWritableDatabase()
{
return getWritableDatabase("encodestr");
}
}
問題就像是我的Android應用程序將得到一個錯誤:該文件不是一個分貝或者encripted ...
當我的意見:// arg0.rawExecSQL(「PRAGMA cipher_page_size = 4096」); ,它會運行良好。
有人知道這個問題嗎?
謝謝。
您的數據庫是否已經存在於設備/模擬器上? – 2014-09-25 18:21:51
是的,它的確如此。其實應用程序運行良好,而無需更改頁面大小。我只是想優化速度。 – David 2014-09-25 21:34:07