如何在我的 Ubuntu Phone 应用中使用 sqlite3?(C++ 后端)

如何在我的 Ubuntu Phone 应用中使用 sqlite3?(C++ 后端)

我想创建一个应用程序,它具有 C++ 后端并使用 sqlite3。我可以使用以下代码连接到内存中的数据库:m_db = QSqlDatabase::addDatabase("QSQLITE"); m_db.setDatabaseName(":memory:"); m_db.open();

但我不知道要使用什么路径或还要做什么才能在手机上创建本地数据库文件。如果我在计算机上运行该应用程序,我可以":memory:"用任何我想要的路径替换它。

谢谢

答案1

我从对这个问题的评论中得到了线索,但我再也找不到了。

如果您想写入/读取文件系统,您必须注意 Ubuntu 的应用程序限制。普通的非操作系统信任的应用程序只能写入一些有限的“私有”目录,并从更多目录中读取。您可以使用QStandardPaths类来查找这些目录。例如,获取我使用的可写数据目录QStandardPaths::writableLocation(QStandardPaths::DataLocation),然后QStandardPaths::standardLocations(QStandardPaths::DataLocation)获取所有可读数据目录。对我来说,在可写数据目录中创建我的 sqlite3 文件是可行的。

顺便说一句:你可以使用以下命令为你的应用程序获取其他类型的目录QStandardPaths(例如,温度、缓存……)。

Ubuntu 的应用程序限制可用这里

相关内容