首页 > 其他分享 >用QT开发Android投屏软件--上传文件和安装apk

用QT开发Android投屏软件--上传文件和安装apk

时间:2024-03-13 09:58:42浏览次数:28  
标签:文件 QT -- apk 投屏 adb 上传 event

这篇文章我们给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

标签:文件,QT,--,apk,投屏,adb,上传,event
From: https://blog.csdn.net/linkedbyte/article/details/136670645

相关文章

  • Коэффициент трансформатора, коэффициент то
    Вэнергосистеметрансформаторявляетсянезаменимымоборудованием.Егоосновнаяфункциязаключаетсяврегулировкенапряженияитокавсоотв......
  • 全网最详细Docker命令(分类总结)
    默认存储容器地址cd/var/lib/docker容器生命周期Docker命令开启docker:systemctlstartdocker查看docker状态:systemctlstatusdocker停止:systemctlstopdocker重启:systemctlrestartdockerdocker开机自启:systemctlenabledocker镜像拉取镜像docker......
  • elastic-dump迁移es集群
    elasticdump安装   npminstall-gcnpm--registry=https://registry.npm.taobao.org   npminstallelasticdump-gelasticdump基本使用                  elasticdump--input=https://elastic:'111@tn111333'@10.246.181......
  • python软件安装
    WelcometoPython.org一:打开这个网址(如下图所示)二:点击下方图标将会跳转到下面这个页面三:将页面翻到下图位置随便选择一个版本下载即可(尽量选择低于最新版本的几个版本)四:安装这个软件在cmd里面,输入python,出来这个结果,即为安装成功......
  • QOJ杂题合集
    QOJ杂题合集QOJ#151.NiceLinesQOJ#838.HorribleCyclesQOJ#894.LongestLooseSegmentQOJ#895.Color给定一个有\(n\)个节点的无向完全图\(G\),每条边都被染成了\(m\)种颜色中的一种,颜色编号为\(1\simm\)。我们称一个无向完全图合法,当且仅当对于\(\forallx......
  • 07-ElementPlus组件库
    ElementPlus简介ElementPlus是饿了么团队研发的,基于Vue3的组件库准备工作:创建工程化的Vue项目选择TypeScript参照官方文档安装ElementPlus组件库(当前工程的目录下)npminstallelement-plus--savemain.ts中引入ElementPlus组件库参照官方文档//main.tsimpor......
  • 06-TDesign组件库
    TDesign具有统一的价值观,一致的设计语言和视觉风格,帮助用户形成连续、统一的体验认知。在此基础上,TDesign提供了开箱即用的UI组件库、设计指南和相关设计资产,以优雅高效的方式将设计和研发从重复劳动中解放出来,同时方便大家在TDesign的基础上扩展,更好的的贴近业务需求。......
  • GitHub推荐使用指南
    GitHub是什么?做代码仓库,代码托管的仓库,类似功能的还有CSDN、GitLab等使用步骤创建账号创建仓库第一步第二步将本地代码推送到远程仓库gitbranch-Mmain表示将主线命名为main实际使用提交直接执行以下即可推送master分支gitremoteaddoriginhttps://github.com/G......
  • 洛谷题单指南-线性表-P2234 [HNOI2002] 营业额统计
    原题链接:https://www.luogu.com.cn/problem/P2234题意解读:要计算每一天最小波动值的和,需要对每一天求最小波动值,再求和,如果暴力法,时间复杂度在1+2+3+......+32767≈5*10^8,可能会超时。解题思路:1、暴力法:由于本题测试数据比较水,实测暴力求解直接可以AC,由于没有技术含量,不做具体......
  • 01-Ajax&Axios
    AjaxAsynchronousJavascriptAndXml传统的请求方式:URL地址栏超链接form表单通过JS代码window.open(url)document.location.href=urlwindow.location.href=url缺陷:页面全部刷新,用户体验较差用户体验不连贯概述Ajax可以在浏览器中发送......