Android sqlCipher中SQLiteOpenHelper的自定义错误处理程序

Android sqlCipher中SQLiteOpenHelper的自定义错误处理程序,android,database,sqlcipher,Android,Database,Sqlcipher,我开始为Android(ver)2.1.1使用sqlCipher,它在Android 4.0.3上的工作原理与charm类似。但是,我发现SQLiteOpenHelper类没有接受自定义错误处理程序的构造函数。这在android.database中提供的原始SQLiteOpenHelper类中有很多,以特定于应用程序的方式处理错误非常有用。有人知道在使用sqlCipher时如何合并自定义错误处理程序吗 构造函数在android.database.sqlite中可用 public SQLiteOp

我开始为Android(ver)2.1.1使用sqlCipher,它在Android 4.0.3上的工作原理与charm类似。但是,我发现
SQLiteOpenHelper
类没有接受自定义错误处理程序的构造函数。这在android.database中提供的原始
SQLiteOpenHelper
类中有很多,以特定于应用程序的方式处理错误非常有用。有人知道在使用sqlCipher时如何合并自定义错误处理程序吗

构造函数在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);
public SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version);
net.sqlcipher.database中提供的构造函数

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

具体来说,当遇到某些类型的错误时,默认的错误处理程序(在使用sqlcipher时)会删除数据库,尽管是在提供Log.e消息之后。但我需要避免它。非常感谢您的帮助。

自定义数据库错误处理程序是android.database包的最新添加。SQLCipher包基于较旧的API(级别7),因此不包含此功能。我们将尝试更仔细地了解这一点,看看我们是否可以在不影响向后兼容性的情况下解决此问题。

谢谢Stephen。任何快速的解决方案都可以从邮件列表中找到:我们在过去一周对此做了更多的研究。不幸的是,这看起来不是一个很简单的改变。我们仍然致力于支持API级别7,在保持向后兼容性的同时实现新功能所需的更改将相对复杂。因此,虽然我们同意提供商删除损坏数据库的行为是不可取的,但我们可能没有短期解决方案。如果时间允许,我们会继续调查,但我至少想让你知道今天的情况。再次感谢你的及时回复。如果API-7的版本为2.1.1,是否有在Android 4.0.3和API-15上使用密码的软件包?此问题通过Chris在的签入解决。我想现在已经融入主流了。