Как записать файлы на устройство Android с помощью Qt? - PullRequest
0 голосов
/ 14 сентября 2018

У меня проблемы с созданием и записью файлов на устройство Android в Qt.Я безуспешно пробовал несколько разных примеров.

Этот пример должен записывать в папку Download внутреннего хранилища:

QString path = QStandardPaths::writableLocation(QStandardPaths::DownloadLocation);

qDebug() << path; // '/storage/emulated/0/Download'
qDebug() << "Exists? " << QFile::exists(path + "/401891.png"); // This is an existing image in the folder, returns true

QFile testFile(path.append("/Testing.txt"));
testFile.open(QFile::WriteOnly);

QTextStream out(&testFile);
out << "Hello";

testFile.close();
qDebug() << "Exists? " << QFile::exists(path + "/Testing.txt"); // Returns false

Я получаю это предупреждение:

Предупреждение: QIODevice :: write (QFile, "/storage/emulated/0/Download/Testing.txt"): устройство не открыто

Чего мне не хватает и как это исправить?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Вы ошибаетесь в последней строке, это дает:

.../Download/Testing.txt/Testing.txt/

использование

qDebug() << "Exists? " << QFile::exists(testFile.fileName()); // Returns true
0 голосов
/ 18 сентября 2018

Похоже, что разрешения не применялись, хотя они были указаны в Манифесте.

Зайдите в Настройки -> Приложения -> Диспетчер приложений

Найдите приложение и убедитесь, что для разрешения «Хранилище» установлено значение «Вкл.».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...