从 Play 商店更新我的应用程序后,如何在 Android 上保存 QSettings 文件的内容以使其可读?

Posted

技术标签:

【中文标题】从 Play 商店更新我的应用程序后,如何在 Android 上保存 QSettings 文件的内容以使其可读?【英文标题】:How to save content of the QSettings file on Android to make it readable after updating my app from Play Store? 【发布时间】:2014-07-31 23:17:55 【问题描述】:

我有一个用 C++ 编写的应用程序。它基于 Qt5.3 框架。我使用QSettings 保存我的应用程序的设置。如果我只重新启动我的应用程序,它就可以工作。但是,如果我从 Qt Creator 重新部署我的应用程序或从 Play Market 更新它,QSettings 将重置为初始状态。我认为与QSettings 关联的文件正在删除。

我使用以下代码创建QSettings

QSettings settings( QStringLiteral( "Company" ), QStringLiteral( "App" ), nullptr);

谢谢!

【问题讨论】:

【参考方案1】:

您可以尝试将设置文件的位置指定为即使应用程序被删除也存在的可写位置:

#include <QSettings>
#include <QStandardPaths>

QString path ;
QString filename;

path = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) ;
filename = “config.ini” ;
QSettings settings(path + “/”+ filename,QSettings::IniFormat) ;

这里QStandardPaths::GenericDataLocation返回一个目录位置,可以存储跨应用程序共享的持久数据,并且永远不会为空。

您还可以在应用程序的主目录中设置应用程序和组织名称一次:

qApp->setOrganizationName("Company");
qApp->setApplicationName("App");

【讨论】:

谢谢!但它只能在我的设备上使用 QStandardPaths::GenericDataLocation 。

以上是关于从 Play 商店更新我的应用程序后,如何在 Android 上保存 QSettings 文件的内容以使其可读?的主要内容,如果未能解决你的问题,请参考以下文章

我如何知道我的 apk 何时在 Play 商店中更新?

更新到项目后,在play store中替换apk文件

引入新的 Google 政策后,在 Google Play 商店更新应用程序时出错

在某些设备上从 Play 商店下载后,我的应用程序卡在白屏

在谷歌Play商店更新时出错的应用程序引入新的谷歌政策后

我不小心从 Play 商店中取消发布了 android 应用程序,现在我该如何重新发布它?