【发布时间】:2011-10-05 16:42:47
【问题描述】:
编辑:假设这篇文章的手机有根。
我删除了我之前发布的关于这个主题的一个问题,因为没有一个答案接近于回答这个问题。长话短说,我需要打开一个数据库并修改现有记录。我不想使用“帮助类”,因为我实际上想查看和理解几行代码中发生的事情,而不是包含 100 行代码的不必要的(出于我的目的)类。所以请不要告诉我“使用记事本教程”。我有,但它没有解释我需要什么。
为简化起见,我正在这样做:
SQLiteDatabase myDB = this.openOrCreateDatabase("/data/data/MY_APP/databases/settings.db", MODE_PRIVATE, null);
myDB.execSQL("INSERT INTO my_table (SOME_FIELD) VALUES ('SOME_VALUE');");
这很好用。但是,如果我尝试在不同的路径中打开/编辑数据库,它会失败。例如,我可能想编辑另一个应用程序使用的数据库。我怎样才能做到这一点?这是一个简单的权限问题吗?如果我的应用请求并获得 root 访问权限,它应该工作吗?
编辑:我可以在手机上安装大量应用程序,这些应用程序能够编辑系统上的每个数据库,因此显然可以做到这一点。
【问题讨论】:
-
“编辑系统上的每一个数据库”——你说的这些神奇的应用是什么?
-
@Merlin 你真的从未见过数据库编辑器应用程序吗? “SQLite 编辑器”已上市。它允许您在手机上打开、查看、编辑任何数据库。不过我怀疑它是魔法。
-
除非它已经root,否则你在
/data/data/some_other_app中看不到任何东西 -
好吧,假设它已经扎根了......现在呢?我仍然无法使用我发布的代码。
-
错误只是“无法打开数据库文件”。我可能会错误地请求 SU。我会在测试时报告...