上一节讲到检查驱动安装情况,那么如果遇到没安装手机驱动的话是没办法和手机进行通讯的(除非你是要直接把文件拷贝到手机目录下,好像txt,视频,音乐的话是不用考虑驱动都可以的,当然有驱动这几种文件的拷贝也会是更方便的。)

好吧,开始说一下安装驱动的实现吧:

首先驱动也是分厂商和机型的(当然好像是有万能驱动这个东西的,但是我测试过万能驱动不是完全适合所有手机的),那么说到厂商和机型,应该就会想到VID和PID了,前面说过VID代表厂商PID代表型号。 那么就知道用什么来匹配驱动了,当然说到匹配的话就说明驱动有很多,虽然有些厂商的所有机型或者某一系列的机型是使用同一个驱动就行了,但是也有很多例外的(这就说明,自己弄一个仿91助手的东西还是做来自己玩玩的,要做成商业软件的话你还得去收集驱动呢。)

在这里说一下题外话,怎么收集驱动呢? 官网?手机自带光碟?  这些方法都很蛋疼的,你自己去实践一下就知道了,除非有专门人员帮你收集,否则真的很蛋疼。而我以前的收集驱动的方法就是用豌豆荚插手机,然后豌豆荚会在C盘的临时文件夹中存放该VID/PID对应的驱动准备安装,然后拷贝下来(- -),等驱动安装完成豌豆荚会把驱动文件删除,所以你要在豌豆荚询问“是否安装驱动”的时候别确定也别取消,然后去拷贝驱动吧,这里你可能需要用到一个辅助软件(Everything)帮你定位这个临时文件夹,这个是一个本地文件搜索软件,搜索速度别拿windows的来比,因为windows那个根本没法比,那个快是一逼的快,瞬间~~~,十分high。 ----------想到就心酸的操作。

在收集驱动的过程中,我发现了驱动有两种,一种就是exe的例如SAMSUNG的就是这样,另外一种就是dll的,如下图:

1、exe类型:

2、dll类型,有两层目录,首层是.inf硬件信息文件和.cat安全文件,次层是.dll动态链接库文件:

-------------------------------------------------------------------------------------------
驱动类型和匹配的说完,现在该说如何安装了吧。
第一种类型,exe文件直接运行就行,可以用WinAPI中的CreateProcess()来启动,这个用户交互会多一点,因为会很多“确认”“下一步”的东西,但是这个我们无法控制,用91助手的时候你也会遇到有些驱动就是要点下一步、下一步,有些就是确定要安装后就后台静默安装了。

第二种类型,用户基本不需要交互,直接后台默认就可以完成安装,我们主要也是要处理这一种。
 主要是用到UpdateDriverForPlugAndPlayDevices(HWND hwndParent,LPCWSTR HardwareId,LPCWSTR FullInfPath,DWORD InstallFlags,PBOOL bRebootRequired);这个API,不敢相信还有那么长名称的API。这个API第一个参数可以为空句柄,第二个参数是硬件ID(这个在第二节讲过,和兼容ID一起的那个),第三个是.inf文件的全路径(就是上面第二张图里面那个),第四个参数填0就行(有需要的可以再详细研究这个参数值),第四个要传一个BOOL型的指针进去等API返回一个是否要重启的值告诉你这个驱动安装后要真正运作起来是否要重启。

OK,今天就到这里。

仿91助手的PC与android手机通讯(4) --- 自动安装手机驱动相关推荐

  1. [转]仿91助手的PC与android手机通讯

    仿91助手的PC与android手机通讯 原文 知道91助手和豌豆莢吧? 说到这两个东西,最让人好奇的应该是就是和手机的交互了.我之前有研究过电脑和安卓的交互,基本功能已经走通了,在这里我想分享一下. ...

  2. 仿91助手的PC与android手机通讯(1) --- 检测设备插入

    知道91助手和豌豆莢吧? 说到这两个东西,最让人好奇的应该是就是和手机的交互了.我之前有研究过电脑和安卓的交互,基本功能已经走通了,在这里我想分享一下. 初初看这个问题觉得很简单,然后如果你有点计算机 ...

  3. 仿91助手的PC与android手机通讯(2) --- 检测是否是手机

    上一篇日志说了如何响应设备插入,但是设备有很多中,多媒体设备,鼠标键盘什么的都是,那如何判断是不是USB设备或者是手机插入呢? 这里就介绍一下我自己的研究结果,当然我没有去研究过苹果设备,但是按道理是 ...

  4. 仿91助手的PC与android手机通讯(5) --- 使用adb获取手机信息

    到这里,我知道的就差不多了.后面就是跟android手机的命令传递了.这些操作主要使用到android工具包---adb(android debug bridge).这个东西是google提供的,网上 ...

  5. android下载完成不能自动安装失败,android 8.0以上自动安装apk失败的解决问题

    随着android 系统的不断更新和发展,针对应用的权限管理也是越来越严格.这可是坑坏了我们这些搬砖的程序员,因为在一些上架平台,都一一宣布,以后的android应用 targetSdkVersion ...

  6. 基于蓝牙适配器的PC与Android端通讯

    Demo 首先,直接给Demo,对于只想使用的朋友,直接下载使用即可.Demo其实也是从网上爬来的,之后做了各种调试和修改. 原有Demo代码下载,可见地址. 修改后Demo效果如下.效果不太清晰,见 ...

  7. sqlplus 为什么会自动断开_为什么设置的手机铃声会自动变为手机默认的,原因在这里...

    大家可能也有这样的经历,在路上听到来电铃声,嗯?不是自己的个性铃声,左右看看,旁边也没有人啊,我我勒个去,是俺自己裤袋里传出来的手机声,接完电话后,百思不得其解怎么是系统默认的呢,我心爱的来电铃声哪里 ...

  8. Android实现文件下载并自动安装apk包

    安装: String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDire ...

  9. Android实现版本更新和自动安装

    直接运行的项目和打包的项目apk签名不同,所以不能直接用开发工具运行项目进行版本更新.需要用apk打包安装的形式更新,否则会提示"签名冲突",无法完成覆盖安装 /** 版本更新 * ...

最新文章

  1. 小学计算机课教学设计,小学信息技术教学设计三篇
  2. NS2相关学习——完成一个新的协议(1)
  3. Magento中调用JS文件的几种方法
  4. 简单的策略模式Strategy演示
  5. struts和struts2-面试题
  6. 网卡5790c linux驱动,(支持所有硬件、无需连接宽带)e驱动 v5.21 WIN7 32bit专版驱动包...
  7. 和平精英为什么服务器显示错误,和平精英为什么会出现错误代码5567?_和平精英错误代码5567解决步骤一览...
  8. 15种不用花钱就能放生的方法,你知道吗?
  9. java基于ssm的在线装机DIY系统的分析与设计
  10. 飞行CSS3导航菜单
  11. 261、Java基础38 - 接口与继承【对象转型】 2019.11.18
  12. 重心法选址 matlab程序,Excel重心法选址计算题的详细步骤
  13. 防火墙、IDS(入侵检测系统)与双机热备
  14. 微信小程序《难忘便签》开发记录
  15. 遥感期刊论文速读2(2021年8月12日)
  16. MPAndroidchart自定义样式二在柱状图上显示文本和间断式显示柱状图
  17. 南昌大学计算机考研学硕,南昌大学电子信息工程专硕考研心得
  18. 解析Token工具类
  19. 详解数据分析中的行为分析
  20. 三种实现分布式锁的方式

热门文章

  1. 使用poi实现excel的上传下载
  2. 斯诺登事件后 美国互联网使用并未改变
  3. nodejs安装不好_【nodejs安装错误2503】nodejs安装2503_nodejs 2503-系统城
  4. Presto RBO 之 算子列裁剪
  5. 好书推荐-英文原版【Understanding MySQL Internals】(附下载地址)
  6. 利用visio绘制3D网络结构图的基本操作
  7. iOS 9 的新特性
  8. GPS坐标转百度地图坐标的方法
  9. Rime 小狼毫 注意事项
  10. 4.25日网易雷火笔试