【发布时间】:2013-10-22 11:54:10
【问题描述】:
我想在我在 Android 上运行的 qt 应用程序中保存一些用户凭据。 我像这样使用 QSettings:
QString appPath = QCoreApplication::applicationDirPath()+QLatin1Char('/');
set = new QSettings(appPath+"test",
QSettings::NativeFormat);
set->setValue ( "user/username", "NameOfTheUser" );
set->setValue ( "user/password", "UserPassword" );
set->sync();
我重新启动应用程序并在我拥有的 initialize() 方法中:
QString username(set->value("user/username",
( QVariant ) tr ( "defaultUser" ) ).toString());
QString password(set->value("user/password",
( QVariant ) tr ( "defaultPass" ) ).toString());
用户名和密码变量不是从 QSettings 中读取的。
相同的代码在 Windows 上运行。
谢谢
【问题讨论】:
-
该路径在包括 Android 在内的大多数平台上都不可写。您是否尝试过使用默认构造(无参数)的 QSettings 对象?
-
我按照你说的尝试了 QSettings("test") ,但响应相同,用户名和密码的值无效。也许值得一提的是,我的 AndroidManifest.xml 设置包含 "...user-permission 。 ..WRITE_EXTERNAL_STORAGE"..这是我对这个问题的唯一提示,但它已设置但仍无法正常工作。谢谢
-
我认为,部署包括设置文件并使用该文件会有所帮助。或者使用 QSettings::IniFormat,并将文件放在 /sdcard/.settings 或 /mnt/card0。使用一些预定义的路径。
-
QSettings(test) 也从工作目录构造一个路径。尝试一个默认构造的,即
new QSettings() -
我试过 QSettings() 没有成功。将其保存在“/sdcard ...”上有效。奇怪的事实,因为我没有 SD 卡,我有一个 Nexus 手机。谢谢你的回答。