2012-12-24 24 views
0

我開始使用sqlCipher for Android(ver)2.1.1,它的工作原理類似於Android 4.0.3上的魅力。但是,我發現SQLiteOpenHelper類沒有采用自定義錯誤處理程序的構造函數。這在android.database中提供的原始SQLiteOpenHelper類中非常有用,並且以特定於應用程序的方式處理錯誤非常有用。有誰知道如何在使用sqlCipher時整合自定義錯誤處理程序?當某些類型的錯誤的默認遇到sqlCipher中SQLiteOpenHelper的自定義ErrorHandler

構造提供android.database.sqlite

public SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version); 
public SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler); 

在構造net.sqlcipher.database

public SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version); 

具體而言,可錯誤處理程序(使用sqlcipher時)會刪除數據庫,儘管提供了Log.e消息之後。但我需要避免它。任何幫助表示讚賞。

回答

0

自定義數據庫錯誤處理程序是android.database包中最新增加的內容。 SQLCipher軟件包基於較舊的API(級別7),因此不包含此功能。我們將嘗試仔細研究這一點,看看我們能做些什麼來解決問題,而不會影響向後兼容性。

+0

謝謝斯蒂芬。感謝所有快速解決方案 – RgPm2011

+0

郵件列表中的交叉帖子: 過去一週我們對此做了更多的研究。不幸的是,這看起來不是一個非常簡單的改變。我們仍致力於支持API Level 7,並且實施新功能所需的更改同時保留向後兼容性會相對複雜。因此,儘管我們同意提供商刪除損壞的數據庫的行爲是不可取的,但我們可能沒有對此進行短期修復。如果時間允許,我們會繼續研究它,但我至少想讓你知道今天的事情。 –

+0

再次感謝您的及時迴應。如果ver2.1.1適用於API-7,是否有在Android 4.0.3和API-15上使用密碼的軟件包? – RgPm2011