我创建了一个将用户登录信息存储到sqlite数据库的应用程序。但是,当我尝试使用Root Explorer访问它时,我收到错误。
打开数据库时发生错误。磁盘i / o错误(代码3850):,编译时:从sqlite_master中选择*,其中键入('table','view')按名称排序。
该应用程序运行正常,它根据需要存储登录信息。但是我无法在根浏览器上访问它?
有什么建议吗?
答案 0 :(得分:1)
请致电此功能:
public static void copyDataBase(Context mActivity) throws IOException {
InputStream myInput = new FileInputStream(new File("/data/data/"
+ mActivity.getPackageName() + "/databases/" + "yourdb.sqlite"));
File files = new File("/sdcard/files/");
files.mkdirs();
String outFileName = "/sdcard/files/your.sqlite";
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int bufferLength;
while ((bufferLength = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, bufferLength);
}
myOutput.flush();
myOutput.close();
myInput.close();
}
您的数据库已复制 /sdcard/files/your.sqlite 此路径。
答案 1 :(得分:0)
您可以在应用中添加按钮以查看数据库信息或将数据库信息写入外部存储中的文件。
否则,您可能需要root设备才能访问数据库。
答案 2 :(得分:0)
只需向文件[YOUR_DB] .db-journal
的所有用户授予权限对我而言,它有效。