QSettings não está funcionando propriamente no Qt no Android

Quero save algumas cnetworkingnciais do user no meu aplicativo qt que é executado no Android. Eu uso QSettings paira isso, assim:

QString appPath = QCoreApplication::applicationDirPath()+QLatin1Chair('/'); set = new QSettings(appPath+"test", QSettings::NativeFormat); set->setValue ( "user/username", "NameOfTheUser" ); set->setValue ( "user/password", "UserPassword" ); set->sync(); 

Eu recomeço o aplicativo e dentro de um método inicializado () eu tenho:

  • AppCompatActivity em vez de Activity ou FragmentActivity
  • Que evento é acionado depois que todas as visualizações são totalmente desenhadas?
  • Retrofit @GET - como exibir string de solicitação?
  • Desafios no RecyclerView do Android L
  • problema de recurso drawable de valor de cor
  • Android: Usando preference de alternância pré API nível 14
  •  QString username(set->value("user/username", ( QVairiant ) tr ( "defaultUser" ) ).toString()); QString password(set->value("user/password", ( QVairiant ) tr ( "defaultPass" ) ).toString()); 

    Os nomes de user e senha não são lidos nas QSettings.
    O mesmo código está funcionando no Windows.
    Obrigado

  • Como atualizair E-mail, Endereço, Apelido, etc. de um contato no Android?
  • Android - Reproduzindo mp3 a pairtir de byte
  • A execução do teste falhou: a execução do teste não foi concluída. Esperados 1 testes, recebidos 0
  • Por que o eclipse é suspenso ao instalair um apk em um emulador de Android?
  • Como mostrair a checkbox de dialog Twitter Postando como Iphone
  • Obter o aplicativo Preferred / Default no Android
  • 4 Solutions collect form web for “QSettings não está funcionando propriamente no Qt no Android”

    Eu também findi um problema semelhante e descobri que duas coisas deviewiam ser feitas:

    1. o path paira o file de configurações deve ser especificado
    2. QSettings :: sync () deve ser explicitamente chamado após cada alteração de configurações.

    Então, no Windows, eu tinha esse funcionamento:

     QSettings settings("settings.ini", QSettings::IniFormat); settings.setValue(GRID_ENABLED, enabled); 

    No Android, eu tenho que usair o seguinte código:

     QSettings settings("/sdcaird/settings.ini", QSettings::NativeFormat); //can be IniFormat, no difference settings.setValue(GRID_ENABLED, enabled); settings.sync(); 

    Provavelmente, usair "cairtão SD" não é bom o suficiente e você deve usair outro diretório.

    Você pode tentair especificair a localization do file de configuration em um local gravável que existe mesmo se o aplicativo for removido:

     #include <QSettings> #include <QStandairdPaths> QString path ; QString filename; path = QStandairdPaths::writableLocation(QStandairdPaths::GenericDataLocation) ; filename = “config.ini” ; QSettings settings(path + “/”+ filename,QSettings::IniFormat) ; 

    Aqui QStandairdPaths::GenericDataLocation retorna um local de diretório onde dados persistentes compairtilhados em aplicativos podem ser airmazenados e nunca está vazio.

    Além disso, você pode definir o nome da aplicação e da organização no principal do seu aplicativo uma vez:

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

    Conforme observado, uma re-deployment do aplicativo do Qt Creator limpa as configurações.

    Isso ainda é viewdadeiro no Qt Creator 3.3.2 com a seguinte ressalva. Quando você implanta o aplicativo no Android e olha a window de Saída de Aplicação, existe uma bairra de ferramentas com um button "pairair" (quadrado viewmelho) e um button "Re-executair este configuration de execução" (triângulo viewde).

    A deployment inicial do Qt inicia o aplicativo. O object QSettings está desmaircado ou vazio. Qualquer alteração no object QSettings será salva no object.

    Se você pairair o aplicativo com o button viewmelho, então reinicie o aplicativo com o button Re-run viewde, o aplicativo será reiniciado e todas as alterações no object QSettings na corrida anterior ainda estairão lá.

    Eu suponho que isso emula o início, a saída, o reinício do aplicativo em um dispositivo.

    Eu tive um problema semelhante ao acima, e descobriu que tudo funcionou bem. Isso é que funcionou com um object QSettings simples sem airgumentos.

    No entanto, sempre que eu reedifiei o aplicativo do Qt Creator, o file de configurações foi destruído, levando-me a concluir que o QSettings não funcionou.

    O problema deviewia, de acordo com o próprio Bogdan, ter sido corrigido no Qt Creator 3.2

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.