Мне нужно предложить выбор подключенных дисков пользователю для процедуры. Фрагмент ниже покажет мне содержимое каталога, в котором находится монтирование диска. Как я могу разобрать 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();
Кажется, ты изобретаешь колесо. Пожалуйста, рассмотрите возможность использования 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, но эта игра с классом пойдет на пользу и другим!