-1

我正在为黑莓设备开发一个应用程序。这个应用程序包含一个数据库。由于 API 是在最后一个 API 版本上提供的,我决定使用 SQLite。

我跟踪了我可以在任何地方找到的每个样本,但无论发生什么,我都看不到数据库。我可以从哪里检索数据。

我应该补充一点,我目前正在使用模拟器。

如果有人知道如何在消息应用程序中存储接收消息,请帮助我。

4

1 回答 1

0

我也发现这很棘手,并且记住它需要很长时间才能解决。最终在绝望中我写了这个方便的函数:

#include <QDebug>
#include <QDir>
#include <QList>
#include <QUrl>

#include <sstream>

using namespace bb::data;
using namespace std;

void listContents(QDir &src, int depth=0) {
    // You app's dirs can be symlinked into libraries, so the depth can go very deep.
    // We limit it.
    if (3<depth) return;
    QListIterator<QFileInfo> entries(src.entryInfoList());
    std::stringstream spaces;

    // If you want to indent files by depth
//  for (int i=0; i<depth; i++) {
//      spaces << ' ';
//  }

    while (entries.hasNext()) {
        QFileInfo entry = entries.next();
        QString canpath = entry.canonicalFilePath();
        QString relpath = src.relativeFilePath(entry.fileName());
        if ((relpath == ".") || (relpath=="..")) {
            continue;
        }
        if (entry.isDir()) {
            QDir subdir(canpath);
            if (!(subdir==src)) {
                listContents(subdir, depth+1);
            }
        } else {
                qDebug() << spaces.str().c_str() << canpath.toUtf8().data();
        }
    }
}

要使用它,您必须首先/data从您的目录中删除目录QDir::homePath()

QString appFolder(QDir::homePath());
qDebug() << "appFolder = " << appFolder;
appFolder.chop(4);

QDir listSource = appFolder + "app/native";
listContents(listSource);

此后,只需检查日志以找到数据库文件的正确路径。

但请注意,如果要写入数据库,则应将其从app/native目录复制到data目录。

于 2013-09-07T04:33:17.120 回答