Am 03.09.21 um 14:51 schrieb Jérôme Godbout:
Take care with the eternal storage opt out will no more be possible
after November. We will need to target SDK 12 to publish to the store.
So the 11 opt out flag will no more be possible (November for existing
application, for new application it’s already started since august).
... and thanks to fixed QTBUG-71590 we can target this soon
Try to push an update asap so your user can migrate the data to the
application proper folder. Other application cannot access the files
anymore. If your file are already into the application data folder you
do not have to worry much you still can access them easily.
fortunately most of my apps only use data inside application data, but 2
of my apps need access to external storage, so I have to fix this in october
But the QStandard path have work fine for us so far. You can check
the actual path it resolve to on this page (scroll a bit down to see
the path for Android):
https://doc.qt.io/qt-5/qstandardpaths.html#StandardLocation-enum
<https://doc.qt.io/qt-5/qstandardpaths.html#StandardLocation-enum>
*From: *Interest <interest-boun...@qt-project.org> on behalf of ekke
<e...@ekkes-corner.org>
*Date: *Friday, September 3, 2021 at 5:47 AM
*To: *Nuno Santos <nuno.san...@imaginando.pt>
*Cc: *Qt Interest <interest@qt-project.org>
*Subject: *Re: [Interest] Save / load file contents on android
Hi Nuno,
Am 03.09.21 um 11:05 schrieb Nuno Santos:
Ekke,
I have been experiencing some inconsistencies with Android file
access using QStandardPaths, mostly now that I’m preparing the
ground for Android 11 support. From Android 11 onwards, there will
be changes in the way an app can access filesystem resources.
This problem started when one of apps was in some systems using
legacy file access while in others was already using the new
storage approach. In order to temporary fixes this issues I have
set the requestLegacyExternalStorage to true, however, soon this
will end as in Android 11 it will be ignored.
I'm in the same situation as you ;-) have set
requestLegacyExternalStorage ATM
last weeks had much work moving all my projects from Qt 5.13.2 to
5.15.5, so I can prepare for Qt 6.2
now there will be 3 weeks vacation
then support of Android 11 file storage will be high on my TODO list
... and hoping then to find some docs / tips HowTo support this from
Qt ;-)
ekke
One of the current challenges I’m facing the moving/copying
resources from legacy storage to new storage when using
QStandardPaths and QFileDialog.
How have you been handling Android 11 support and data migration
from older versions?
Are you able to do it just with Qt stuff or do you need to handle
some of the things with native android API’s?
Thanks!
Nuno
On 31 Aug 2021, at 13:38, ekke <e...@ekkes-corner.org
<mailto:e...@ekkes-corner.org>> wrote:
Am 31.08.21 um 14:12 schrieb Wilhelm Meier via Interest:
Hi all,
does anybody have a minimum working example how to load / save json
file
contents (auscii contents) to / from a file on android.
I made several attempts, but I get weird filenames and I'm not able
to
load the stored file.
thx
_______________________________________________
Interest mailing list
Interest@qt-project.org <mailto:Interest@qt-project.org>
https://lists.qt-project.org/listinfo/interest
<https://lists.qt-project.org/listinfo/interest>
Hi,
some snippets HowTo save a JSON. use QVariantMap for a JSON
Object or QVariantList for JSON Array
QJsonDocumentjda=QJsonDocument::fromVariant(myQVariantMap);
QByteArraybuffer=jda.toJson();
saveTestFile("_my_test.json",buffer);
...
voidDataServer::*saveTestFile*(constQString&fileName,constQByteArray&buffer)
{
QStringfilePath=mDataManager->dataPath(fileName);
QFilesaveFile(filePath);
if(!saveFile./open/(QIODevice::WriteOnly)){
qWarning()<<"Couldn't open file to write "<<filePath;
return;
}
qint64bytesWritten=saveFile.write(buffer);
saveFile./close/();
qDebug()<<"Bytes written: "<<bytesWritten<<" to: "<<filePath;
}
....
//Android:AppDataLocationworksoutofthebox,iOSyoumustcreatetheDIRfirst!!
mDataRoot=QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).value(0);
mDataPath=mDataRoot+"/data/";
----
and reading is similar
jda=QJsonDocument::fromJson(dataFile.readAll());
dataFile./close/();
if(!jda.isArray()){
myMap = jda.toVariant().toMap();
} else {
myList=jda.toVariant().toList();
}
-----
hope it helps
_______________________________________________
Interest mailing list
Interest@qt-project.org <mailto:Interest@qt-project.org>
https://lists.qt-project.org/listinfo/interest
<https://lists.qt-project.org/listinfo/interest>
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest