Android — Как вы запускаете команды ADB с Qt Creator?

В настоящее время я пытаюсь получить кнопку в Qt для запуска следующей команды: adb reboot, Я нахожусь на MAC, и когда я запускаю эту команду в моей консоли, она перезагружает Android устройство подключено к моему компьютеру через USB, Я прочитал форумы онлайн и не смог решить эту проблему. Вот некоторые из моих попыток при попытке позвонить adb reboot в Qt:

void MainWindow::on_pushButton_clicked()
{
QProcess::startDetached("/bin/bash", QStringList()<< "-c" << "export PATH=${PATH}:/Downloads/adt-bundle-mac-x86_64-20140702/sdk/platform-tools/");
QProcess::startDetached("/bin/bash", QStringList()<< "-c" << "adb reboot");
QProcess::startDetached("/bin/sh", QStringList()<< "-c" << "adb reboot");
QProcess::startDetached("/Downloads/adt-bundle-mac-x86_64-20140702/sdk/platform-tools/", QStringList()<< "-c" << "adb reboot");
}

Это вывод моей консоли, когда я нажимаю кнопку:

Starting /Users/ddelorenzo/Documents/QaGUI/QaGUI/QaGUI.app/Contents/MacOS/QaGUI..
/bin/bash: adb: command not found
/bin/sh: adb: command not found

Любая помощь будет принята с благодарностью!

3

Решение

Проще всего было бы использовать Этот метод:

bool QProcess :: startDetached (const QString & команда) [статические]

Это перегруженная функция.

Запускает команду в новом процессе и отсоединяется от него. Возвращает true в случае успеха; в противном случае возвращает false.

Обработка аргумента идентична соответствующей перегрузке start ().

После того, как командная строка была разделена и не заключена в кавычки, эта функция ведет себя как перегрузка, которая принимает аргументы в виде списка строк.

Поэтому я бы написал что-то вроде этого:

if (!QProcess::startDetached("/Downloads/adt-bundle-mac-x86_64-20140702/sdk/platform‌​-tools/adb reboot"))
qDebug() << "Failed to execute";
0

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