3

我正在为我的一个 android 程序开发诊断工具。

从本质上讲,如果用户遇到问题,我想将 SQLite dump(参考:http ://www.sqlite.org/sqlite.html )之类的东西放入一个字符串中,然后我可以通过电子邮件发送它。

有谁知道是否有一种简单的方法可以从 android 程序中执行此操作,或者我是否要与 android 操作系统交互并以这种方式运行命令?

4

1 回答 1

3

我解决了自己的问题,将数据库转储到文件中,然后将文件读入字符串。对于那些感兴趣的人,以下内容为您提供了总体思路:

    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);

美东时间

所以上面有问题,我没有看到,因为我是SQLite3从 adb 运行命令的。

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

于 2013-10-19T00:37:16.383 回答