运行SQLite3数据库转储需要哪个Android权限?

时间:2013-10-21 22:48:30

标签: android sqlite android-permissions

我有代码转储sqlite3数据库,然后将其读入字符串:

    String dbPath = "/data/data/com.company.project/databases/project.db";
    String outputPath = "/data/data/com.company.project/databaseDump.txt";

    Process proc = Runtime.getRuntime().exec("sqlite3 " + dbPath + " '.dump' > " + outputPath);
    proc.waitFor();
    returnString = FileUtil.getStringFromFile(outputPath);

当我在我的模拟器上运行时,我很好,但是当我在真正的手机上运行它时它不起作用。我很好奇我是否需要在清单中添加额外的权限,或者我缺少的内容。

EDT

所以看起来我的问题的一部分是PEBKAC ......我通过adb手动运行转储,然后在模拟器中读取文件工作正常。所以dump命令看起来不像是模拟器的工作......我需要为sqlite3程序做一个意图吗?如果是这样,我该如何为特定程序执行此操作?

1 个答案:

答案 0 :(得分:0)

看起来SQLite3是一个可以从adb运行的命令,但它不一定在手机上。基于此,我采取了不同的方法。我使用android的DatabaseUtils来帮助我构建我需要的结果,例如DatabaseUtils.dumpCursorToString(cursor)。我为我感兴趣的每个表做了这个并构建了一个返回字符串。