QT中通过QProcess调用adb命令完成PC端文件传输到安卓

最近工作中遇到 一个需求,是需要通过QT的界面去调用adb命令完成将PC端的文件传输到安卓手机上。
到网上查询资料后发现QT中的QProcess类可以完成这个需求,简单用法如下:

QProcess *process = new QProcess(this);
process->start("ls");
ui->textEdit->append(process->readAllStandardOutput().data());

ls命令我在终端里面可以执行,然后我换了adb version命令在终端也可以执行(adb得自己提前安装),运行结果如下: QT中通过QProcess调用adb命令完成PC端文件传输到安卓_第1张图片
之后我将前面代码换成如下:

QProcess *process = new QProcess(this);
process->start("adb version");
ui->textEdit->append(cmd->readAllStandardOutput().data());

textEdit控件什么都不显示出来,之后查询资料得知: 在 Q P r o c e s s 中 调 用 涉 及 到 后 安 装 软 件 的 指 令 , 必 须 得 指 明 路 径 才 行 \color{red}在QProcess中调用涉及到后安装软件的指令,必须得指明路径才行{} QProcess
于是将代码改成如下:

QProcess *process = new QProcess(this);
process->start("/Users/mac/Library/Android/sdk/platform-tools/adb version");
ui->textEdit->append(cmd->readAllStandardOutput().data());

运行之后textEdit控件成功显示adb的版本信息:QT中通过QProcess调用adb命令完成PC端文件传输到安卓_第2张图片
到此,已经可以通过QT调用adb命令了,完成文件的传输到安卓只是调用不同的adb命令而已,修改命令即可。

你可能感兴趣的:(QT中通过QProcess调用adb命令完成PC端文件传输到安卓)