当前位置:编程学习 > wap >>

关于adb无法连接手机的问题

两台一样的中兴手机V880(购买时间不同),后买的用usb连上电脑adb连接不了手机。
检查后发现是因为没有后买的手机连接后系统没有这个接口: 
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)

请问:
   1、同样的系统,相同的手机,为什么有一台手机没有创建这个接口呢?
   2、这个接口是“谁”创建出来的?(熟悉linux驱动的朋友帮帮忙解答一下)


下面是两台手机连接单板机(linux内核:2.6.38)后的执行:less /proc/bus/usb/devices 的结果。
20 T:  Bus=01 Lev=02 Prnt=14 Port=01 Cnt=01 Dev#= 15 Spd=12   MxCh= 0
21 D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
22 P:  Vendor=19d2 ProdID=0083 Rev= 2.26
23 S:  Manufacturer=ZTE Incorporated
24 S:  Product=ZTE HSUSB Device
25 S:  SerialNumber=P729CU_UNICOM
26 C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
27 I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-stora
27 ge
28 E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
29 E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
30 
31 T:  Bus=01 Lev=02 Prnt=14 Port=02 Cnt=02 Dev#= 16 Spd=12   MxCh= 0
32 D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
33 P:  Vendor=19d2 ProdID=1351 Rev= 2.26
34 S:  Manufacturer=ZTE Incorporated
35 S:  Product=ZTE HSUSB Device
36 S:  SerialNumber=CSE_P729V
37 C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=500mA
38 I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-stora
38 ge
39 E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
40 E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
41 I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
42 E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
43 E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

--------------------编程问答-------------------- 自己顶一下 --------------------编程问答-------------------- lsusb命令,查看机器的编号。
如:Bus 002 Device 004: ID 19d2:681c Samsung Electronics Co., Ltd Galaxy Portal/Spica Android Phone 那么,编号04e8记住了,之后会用到的。

/etc/udev/rules.d/ 增加rules文件,文件名:51-Android.rules
sudo gedit /etc/udev/rules.d/51-Android.rules
在弹出的文件框内输入内容:SUBSYSTEM==”usb”, SYSFS{idVendor}==”19d2”, MODE=”0666″
其中 19d2是我的编号~~大家自行修改吧~~之后保存退出即可。

修改改文件的读取操作权限。给所有人添加读权限
sudo chmod a+r gedit /etc/udev/rules.d/51-Android.rules

配置完成之后,重启相应的服务。到此为止,可以在eclipse里进行Android开发咯!
sudo /etc/init.d/udev restart
sudo ./adb kill-server  // 关掉adb服务 这里kill掉以后,会自动重启的~  
sudo ./adb devices      //查看在线设备
--------------------编程问答-------------------- 多谢楼上的解答,

您说的方法貌似是对ubuntu的,我连的是单板机,上面没有/etc/udev/这个目录,
而且我有一个手机用adb是可以连接的,另外一个不行,之前我也并没有增加过这个规则。 --------------------编程问答-------------------- 在内核里android_adb是个平台类设备走usb总线收发数据,手机端启动android_adbd的服务,就可以与pc端得adb通信,此时手机应该处于usb的device模式,不能是host模式。
手机出厂时,在内核里把adb驱动砍掉或者默认不开启android_adb服务,这条线就断了。
lz应该先检查下手机的usb模式,如果是host改成device再试,如果已经是device,那就是厂商不想让你adb。。。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,