这篇文章我们给Android投屏软件增加文件上传和安装apk的功能。
上传文件和安装apk对pc端的操作基本没有差别,因为apk也是一种文件格式。通过点击按钮或者拖动待上传(安装)的文件到投屏窗口,软件获取到文件路径,执行不同的adb命令。
上传文件的adb命令:
adb -s 设备序列号 push <电脑上的文件路径> <设备上的目标路径>
安装apk的adb命令:
adb -s 设备序列号 install [-r] <电脑上的apk文件路径>
//-r 是安装命令的可选项,是否覆盖已有安装包
先看一下界面的截图:
红框里面的两个按钮分别是上传文件和安装apk,为了操作更简便,支持拖动文件到投屏窗口。
QT可以很方便的实现拖动文件到窗口里,投屏窗口继承QDialog。
打开 setAcceptDrops(true) 设置,重写下面的事件处理方法即可
void DeviceForm::dragEnterEvent(QDragEnterEvent *event)
{
if(event->mimeData()->hasUrls())
event->acceptProposedAction();
}
void DeviceForm::dropEvent(QDropEvent *event)
{
const QMimeData *qmd = event->mimeData();
QList<QUrl> urls = qmd->urls();
for (const QUrl &url : urls)
{
QString file = url.toLocalFile();
QFileInfo fileInfo(file);
if (!fileInfo.exists()) {
//file does not exist
continue;
}
if(fileInfo.isFile())
{
emit pushFileAction(fileInfo);
}
}
}
QQ: 2276769057
github : https://github.com/linkedbyte/tomobile