Android — захват QProcess (ls) для просмотра списка

Мне нужно предложить выбор подключенных дисков пользователю для процедуры. Фрагмент ниже покажет мне содержимое каталога, в котором находится монтирование диска. Как я могу разобрать SD ?? значения (sda1, sdb1 и т. д.) из «команды» QString и предложить их пользователю на выбор? Listbox? Как советовать пожалуйста.

   QProcess mount_dir;
mount_dir.setProcessChannelMode(QProcess::MergedChannels);
cstring = adb + " -s " + daddr+port + " shell su -c ls /storage/;
mount_dir.start(cstring);
mount_dir.waitForFinished(-1);
command=mount_dir.readAll();

2

Решение

Кажется, ты изобретаешь колесо. Пожалуйста, рассмотрите возможность использования QStorageInfo для этой задачи, а именно:

 Q_PROPERTY(QStringList allLogicalDrives READ allLogicalDrives NOTIFY logicalDriveChanged)

Возможно, он не перенесен на Android, но это должно быть легко сделать. Для этого не нужно запускать QProcess, просто используйте API для конкретной платформы с QtAndroidExtras,

Что касается вопроса списка, используйте этот QML:

ListView {
...
model: myStringListProprety
// or: model: myClass.myStringListAccessor()
}

Итак, в основном вы либо создаете свойство (это то, что я предлагаю), либо делаете метод slot / invokable в C ++. Если бы вы использовали QStorageInfo, вы были бы готовы, так как целевое свойство там уже существует. Опять же, он может нуждаться в специфической настройке бэкенда для Android, но эта игра с классом пойдет на пользу и другим!

0

Другие решения


По вопросам рекламы [email protected]