我正在尝试在我的 PC 上读取使用 sqlcipher 创建的加密数据库,但我无法在我的应用程序上读取它。例如:
Cursor c = database.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
c.moveToFirst();
do {
String s = c.getString(0);
if (s.equals("android_metadata")) {
// System.out.println("Get Metadata");
continue;
} else {
dirArray.add(s);
}
} while (c.moveToNext());
Log.i("getS", "DATABASE = " + dirArray.toString());
Log.i("getS", "length = " + dirArray.size());
结果如下
03-12 03:28:12.691: I/getS(9895): DATABASE = []
03-12 03:28:12.691: I/getS(9895): length = 0
还有这个:
Cursor c2 = database.query("my_table", new String[] { "name" }, null, null, null, null, "name");
回到这个:
03-12 03:28:12.701: I/Database(9895): sqlite returned: error code = 1, msg = no such table: my_table
我正在使用 sdk-7 进行编译,如果我尝试使用未加密且没有 sqlcipher 的相同数据库,则没有任何问题。谁能教我如何在 android 上读取计算机上加密的数据库?欣赏 ;)