最近用C++做一款类似手机助手的底层通信模块,其中一个模块需要做成自动检测PC机上插入的手机设备有哪些。我用adb 做的,在DOS环境下循环输入adb devices来一直查询PC机上的所有设备。但是查询不到。而在打开腾讯手机管家或者91手机助手,并对设备建立连接后,我再在DOS下输入adb devices后便可以查询到手机的信息列表了。而此时,我关掉手机助手,过一会儿再输入adb devices,便查询不到了。这是为什么啊?
我个人理解:
1. 是不是跟驱动有关系啊?但是手机助手在打开一个设备后,驱动就已经安装好了啊
2. 是不是不能单单依靠telnet命令adb devices来检测连接到PC机上的设备列表啊?在adb devices之前是不是还得做些什么操作啊?
3. 是不是我得调用AdbWinApi.dll中的接口函数来实现自动检测的功能啊?
求各位大侠帮忙啊?补充:其实最好是能知道腾讯手机管家或91手机助手的自动检测功能是怎么实现的,只要告诉我思路就行啦  谢谢各位大侠啦!!

解决方案 »

  1.   

    我记得adb有一个命令是启用服务adb start-server 好像是,你试试呢
      

  2.   

    即使先kill-server  然后再start-server之后  adb devices  设备列表还是为空
      

  3.   

    即使先kill-server  然后再start-server之后  adb devices  设备列表还是为空
      

  4.   

    问题解决了,是adb版本不对。因为androd版本在一直更新,因此adb版本也要随着进行更新。 
      

  5.   


    请问你更新的哪个版本的adb呢?我也遇到了这个问题,adb从developer.android.com下载的,应该是最新的吧?但是依然list为空。谢了
      

  6.   

    大公司,都要自己编译adb的,adb有个独占问题,你看下源码,主要是两个dll在作怪。4.2开始adb加入了配对效验