我正在为黑莓设备开发一个应用程序。这个应用程序包含一个数据库。由于 API 是在最后一个 API 版本上提供的,我决定使用 SQLite。
我跟踪了我可以在任何地方找到的每个样本,但无论发生什么,我都看不到数据库。我可以从哪里检索数据。
我应该补充一点,我目前正在使用模拟器。
如果有人知道如何在消息应用程序中存储接收消息,请帮助我。
我正在为黑莓设备开发一个应用程序。这个应用程序包含一个数据库。由于 API 是在最后一个 API 版本上提供的,我决定使用 SQLite。
我跟踪了我可以在任何地方找到的每个样本,但无论发生什么,我都看不到数据库。我可以从哪里检索数据。
我应该补充一点,我目前正在使用模拟器。
如果有人知道如何在消息应用程序中存储接收消息,请帮助我。
我也发现这很棘手,并且记住它需要很长时间才能解决。最终在绝望中我写了这个方便的函数:
#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
目录。