qtadb源代码中截取操作fastboot部分代码示例

Qt下操作QProecess示例


void FastbootWidget::bootIMG()

{

    QString output;

    QProcess fastboot;

    fastboot.setProcessChannelMode(QProcess::MergedChannels); //合并通道,将stderr合并输出,让readAll()可读到stderr信息

    fastboot.start("\"" + this->sdk + "\"fastboot devices");

    fastboot.waitForFinished();  //等待进程完成,阻塞模式

    output = fastboot.readAll();  //将输出信息全部读取出来处理

    if (output.contains("fastboot"))

    {

        QProcess *process=new QProcess();

        process->setProcessChannelMode(QProcess::MergedChannels);

        QString tmp;

        QString imgFileName = QFileDialog::getOpenFileName(this, tr("Choose img file..."), ".", tr("IMG File ")+"(*.img)");

        if (!imgFileName.isEmpty())

        {

            process->start("\"" + sdk + "\"fastboot boot " + imgFileName);

            process->waitForFinished(-1);  //超时时间为 永久等待至进程结束

            process->terminate();

        }

        else

            QMessageBox::warning(this, "Error!", "Operation cancelled!", QMessageBox::Ok);

        delete process;

    }

    else

    {

        this->phone->slotConnectionChanged(FASTBOOT,this->phone->serialNumber);

    }

}


你可能感兴趣的:(#Android,#qt)