我的设备是带有Android 2.1的Alcatel OneTouch 890。我在51-android.rules
rules.d
文件夹的/etc/udev
{。}}中进行了配置。
我的操作系统是Ubuntu。
我在设备中启用了USB调试模式。
HTC和三星设备正在检测,但不是我的阿尔卡特,
这是我的51-android.rules
文件。
#HTC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"
#samsung
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}==”04e8”,ATTRS{idProduct}=="689e", MODE="0666",OWNER="abcd"
#alcatel
SUBSYSTEM=="usb", SYSFS{idVendor}=="1bbb", MODE="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="1bbb", MODE="0666"
root@abcd:/home/abcd# lsusb
Bus 005 Device 002: ID 0461:4d15 Primax Electronics, Ltd Dell Optical Mouse
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 006: ID 1bbb:00f2 T & A Mobile Phones // what is T & A in this line....?
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@abcd:/home/abcd# Android/android-sdk-linux_86/platform-tools/adb devices
List of devices attached
答案 0 :(得分:13)
首先,检查您在udev规则中使用的引号类型。看起来您可能正在使用非ASCII双引号。查看usb
和usb_device
等引号之间的差异
SUBSYSTEM=="usb", SYSFS{idVendor}=="1bbb", MODE="0666"
SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”1bbb”, MODE="0666"
您也可以按照@JeremyD的建议,将sudo
与ADB一起使用。这样做会使这个文件无关紧要。
其次,
~/.android/adb_usb.ini
(如果您以root用户身份运行,请检查/root/.android
)0x1bbb
添加到结尾;否则:echo 0x1bbb >> adb_usb.ini
adb kill-server
adb start-server
adb devices
的输出希望这有帮助。
答案 1 :(得分:7)
阅读这些有用的提示和其他一些关于设置Android设备的帖子,我一步一步地写下了如何准备好设备的文章。
编辑〜/ .android / adb_usb.ini并附加0x1bbb行 在底部。
这将列出:
$ adb devices
附加设备清单
????????????没有权限
使其发挥作用的步骤:
将您的自我添加到组中
为你的发行版安装51-android.rules包,然后打开文件:
/etc/udev/rules.d/51-android.rules
**如果不存在,请列出包文件并找到该文件。
在名为OneTouch的评论部分或任何您想要命名的部分下面添加以下部分:
SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”1bbb”, MODE="0666"
所以,结果将是:
# Alcatel OneTouch 891
SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”1bbb”, MODE="0666"
保存文件!
多次重新插入设备的USB,然后重新启动adb守护程序:
特别发布:
的Archlinux
$ rc.d restart adb
ubuntu,redhat,fedora,centos
$ service adb restart
或手动:
$ adb kill-server
$ adb start-server
$ adb devices
将列出您的设备。
我的结果显示在bash中:
$ adb devices
附加设备清单
0123456789ABCDEF设备
如果仍然没有结果: 运行此命令:
$ udevadm触发器
然后再次重新插入您的设备。 或者只是重启。
Dalvik的:
http://wstaw.org/m/2011/11/13/plasma-desktopos8794.jpg
文件管理器:
http://wstaw.org/m/2011/11/13/plasma-desktopgt8794.jpg
答案 2 :(得分:4)
关闭eclipse后尝试杀死并启动adb服务器。
所以试试:
它应该工作。我曾经多次遇到这个问题,并且这样做是在我给你的指示后工作的。
希望它有所帮助!
编辑:由于大多数Android开发人员转移到Android工作室和其他模拟器,这可能无法正常工作。答案 3 :(得分:3)
答案 4 :(得分:1)
对于那些有兴趣在CentOS上找到adb识别设备的perrenial解决方案的人,我找到了解决方案。
首先,以root身份运行adb不是一个好的解决方案,因为任何用户都可以随时重启adb;甚至IDE自动重启adb,然后adb再次失明。
我的解决方案是创建一个“adb”组,并将我的用户添加到该组。 然后在51-android-rules中,像这样添加GROUP:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666", GROUP="adb"
重新加载udev规则。 如果您正在使用gnome会话,请重新启动会话,因为gnome会在您的组中保留缓存...
打开一个新的xterm,验证您是否属于 adb 组:$ groups
然后$ adb devices
应启动adb服务器,然后识别您的设备。
答案 5 :(得分:1)
我也有阿尔卡特手机,我通过以下方式解决了这个问题:
<强> 1。#lsusb
强>
Bus 002 Device 021:ID 18d1:0002 Google Inc. //这是我的阿尔卡特手机
2.将以下内容添加到/etc/udev/rules.d/51-android.rules:
SUBSYSTEM ==“usb”,ATTRS {idVendor} ==“18d1”,ATTRS {idProduct} ==“0002”,MODE =“0666”
注意:我注意到预期的“idVendor”,你还需要添加“idProduct”。
3.#sudo service udev restart
4.拔下手机并重新插上。
5.#adb devices
附加设备列表
TCL-Martini设备
答案 6 :(得分:1)
我知道OP接受的答案是有效的,但对于将来会出现此问题且上述答案不起作用的人,以下内容对我有用。
这种通用的udev规则 -
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:ff420?:*", MODE="0666"
来自这个问题 - ADB not detecting device samsung i777 in ubuntu 12.04
帮助我在&#34; BLU Dash Jr&#34;上解决了这个问题。在我的相关问题中提到的电话(供应商=展讯):
答案 7 :(得分:0)
我使用ArchLinux我安装了这个包: https://aur.archlinux.org/packages.php?ID=51476 它安装了我需要的所有规则 关于arch和android的更多细节: https://wiki.archlinux.org/index.php/Android
答案 8 :(得分:0)
在您的设备中,确保使用USB接口作为MTP或PTP。有时,默认情况下,它从大容量存储接口开始,似乎adb未被授予访问设备的权限。