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

我当时测试就是随便上网搜了一个adb.exe下载下來,打开一个黑框把文件拖进去回车就可以看到命令列表了,如下图:
介绍一下获取android手机信息的基本流程:
      WinExec("adb -d devices",SW_HIDE);
        Sleep(1200);     SECURITY_ATTRIBUTES sa;          sa.nLength = sizeof(SECURITY_ATTRIBUTES);  

     char buffer[1024] = {0};          //用1K的空间来存储输出的内容,只要不是显示文件内容,一般情况下是够用了。      DWORD recvLen;       DWORD occupyLen = 0;

     TCHAR command[1024] = _T("adb -d shell getprop ro.product.brand");   //获取厂商名称                                //_T("adb -d shell getprop ro.product.model") //设备型号
                                //_T("adb -d shell getprop ro.build.version.release") //android版本
                                //_T("adb -d shell dumpsys iphonesubinfo"}    //IMEI码
                                //_T("adb -d shell cat /sys/class/net/wlan0/address") //MAC地址      HANDLE hRead,hWrite;         if (!CreatePipe(&hRead,&hWrite,&sa,0))               return 0;    

     PROCESS_INFORMATION pi;      STARTUPINFO si;      si.cb = sizeof(STARTUPINFO);        GetStartupInfo(&si);     si.wShowWindow = SW_HIDE;       si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;       si.hStdError = hWrite;         //把子进程的标准错误输出重定向到管道输入        si.hStdOutput = hWrite;            //把子进程的标准输出重定向到管道输入          si.hStdInput = hRead;          //把子进程的标准输入重定向到管道输出

 TCHAR command[1024] = _T("adb -d shell getprop ro.product.brand");   //获取厂商名称     if (! CreateProcess(NULL, command,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))   // 启动进程以调用ADB        {            CloseHandle(hWrite);             CloseHandle(hRead);              return FALSE;        }  

     CloseHandle(hWrite);

     if(WaitForSingleObject(pi.hProcess,800) == WAIT_TIMEOUT)          //800ms的处理等待时间.      {            TerminateProcess(pi.hProcess,WAIT_TIMEOUT);          CloseHandle(pi.hProcess);            return FALSE;        }

      if(ReadFile(hRead,buffer,200,&recvLen,NULL))        //IMEI码的要做特殊处理。      {            CStringA strIMEI = buffer;          if(strIMEI.Find("error:") == -1)         {                strIMEI = strIMEI.Mid(strIMEI.FindOneOf("=")+2);                strcpy_s(buffer,1024,strIMEI.GetBuffer());               strIMEI.ReleaseBuffer();             occupyLen=strIMEI.GetLength();}         }        }///      ReadFile(hRead,buffer,1024,&occupyLen,NULL);            //其他信息直接返回读取到的东西就行。

       buffer[occupyLen-3] = '\0';

     CloseHandle(hRead);      CloseHandle(pi.hThread);     CloseHandle(pi.hProcess);        TerminateProcess(pi.hProcess,0);

OK,今天到此为止.

原版地址:http://mongamind.blog.163.com/blog/static/193287261201310603758225/

仿91助手的PC与android手机通讯(5) --- 使用adb获取手机信息相关推荐

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

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

  2. 仿91助手的PC与android手机通讯(4) --- 自动安装手机驱动

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

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

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

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

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

  5. Android项目:手机安全卫士(15)—— 获取手机安装应用与存储空间

    Android项目:手机安全卫士(15)-- 获取手机安装应用与存储空间 1 介绍 今天来讲讲手机安全卫士的第三个功能:软件管理,其实也不应该叫管理,称为软件应用信息查看更正确一点,就是显示手机已安装 ...

  6. adb 获取手机屏幕内容 截屏录制视频

    adb 获取手机屏幕内容 截屏录制视频 官方文档 安装 屏幕截图获取 连接设备到adb,使用命令查看:·adb devices adb shell screencap /sdcard/screen.p ...

  7. Android 12 通过 adb 获取 imei 信息

    Android 12 通过 adb 获取 imei 信息 小米 E:\exe>adb shell "service call iphonesubinfo 1 | cut -c 52-6 ...

  8. 如何通过ADB获取手机root权限

    如何通过ADB获取手机root权限 参考学习一下内容 真机调试adb:wait for device 解决方案 通过adb push一个可执行文件到/data/目录下,可是运行出错No such fi ...

  9. h5获取android手机版本,Vue.js怎么获取手机系统型号、版本、浏览器类型

    Vue.js怎么获取手机系统型号.版本.浏览器类型 发布时间:2020-07-28 11:22:33 来源:亿速云 阅读:161 作者:小猪 这篇文章主要为大家展示了Vue.js怎么获取手机系统型号. ...

最新文章

  1. numa对MySQL多实例性能影响
  2. Java Web学习总结(3)Servlet(二)
  3. 对话美摄科技侯康:提升技术,拓展场景 美摄智能汽车视频处理方案已就位
  4. 工作209:整理订单的重置逻辑
  5. java中volatile关键字的含义_java中volatile关键字的含义
  6. 烟花视频软件测试,基于视频分析的烟火自动检测预警系统
  7. DevExpress中XtraGrid控件对GridView每行的颜色设置 zt
  8. 聊聊 | 他在Google Play安全奖励计划贡献榜单上排名第一
  9. windows 的使用 —— 注册表(软件的安装和卸载)
  10. 计算机组成原理(微课版)谭志虎pdf资源
  11. 单片机蜂鸣器奏乐代码例子
  12. SIRS传染病模型求解及MATLAB实现
  13. 【仿人机器人】机器人基础介绍
  14. 笔记︱横截面回归模型中调节效应+中介效应(横截面回归模型两大方向)
  15. gitbook:epub电子书制作教程
  16. 2019/11/08 校内模拟
  17. 追捕文件WRY.DLL的浅显分析及程序示例
  18. MC我的世界模组-模拟城市-教程
  19. 阿里巴巴大数据竞赛(2014年3月10日到11月)
  20. 联想微型计算机c325参数,联想一体机c325性能表现 联想一体机c325配置参数

热门文章

  1. JVM虚拟机详解(三)类加载器的分类
  2. UNIX/LINUX压缩工具 bzip2详解
  3. H5下载文件跨域问题解决方案
  4. 四阶幻方,五星填数(python)
  5. j2me证券指标系统
  6. php fetchall用法,PHP利用fetchAll()与MySQL_fetch_array()用法示例
  7. 武汉华夏理工学院计算机住宿,武汉华夏理工学院宿舍条件,宿舍环境图片(10篇)...
  8. vant官网无法打开
  9. conda配置中科大源
  10. 8、10、16进制转2进制最快方法,无需思考,直接写答案