如何通过 adb 获取 Android 设备的供应商 ID?
Posted
技术标签:
【中文标题】如何通过 adb 获取 Android 设备的供应商 ID?【英文标题】:How to get Vendor ID of an Android-powered device via adb? 【发布时间】:2012-04-22 14:36:14 【问题描述】:我对如何获取 android 设备的供应商 ID 和产品 ID 有疑问。
有没有 adb 的命令可以做到这一点?
我可以在插入设备时获取供应商ID和产品ID,但是在安装Windows驱动程序后,如果我同时插入两个设备,我无法区分真正的供应商ID。所以我需要通过 ADB 或硬件设备和 android 设备之间的任何其他连接找出供应商 ID。
【问题讨论】:
【参考方案1】:希望这个link对你有帮助
-s serialNumber 是为您提供特定模拟器/设备实例的 adb 命令,由其 adb 分配的序列号引用(例如“emulator-5556”)。我认为这是您正在寻找的 adb 命令为。
【讨论】:
感谢您的回答,我知道serialNumber,它应该部分用pid和vid编码,但我不知道如何。我想要Windows的ID而不是Android。【参考方案2】:如果您运行的是 Ubuntu/Linux,只需键入
lsusb -v
然后按回车键。 它将显示所有 USB 设备的详细信息。 在结果中检查名为“idVendor”的字段并找到您的设备。 例如:我的摩托罗拉 Defy[vendor id = 22b8] 给出,
"idVendor 0x22b8 摩托罗拉 PCS"
【讨论】:
这绝不会将 adb 拥有的信息(序列号)与实际的供应商/产品 ID 联系起来。在这个层面上,拥有多部相同型号的手机将无法相互识别。【参考方案3】:ADB 本身不会帮助找到连接的硬件的供应商 ID,事实上(对于 Google ADB 驱动程序),在使用 ADB 之前必须设置供应商 ID。
幸运的是,有一种简单的方法可以找到连接到 Windows PC 的任何设备的供应商 ID(和产品 ID)。该设备甚至不需要驱动程序就可以使用这种方法:
-
启动设备管理器
在硬件树中,右键单击要为其确定供应商 ID 的设备的硬件条目。
-
在“详细信息”选项卡上,将属性下拉菜单设置为“硬件 ID”。供应商 ID 是字母
VID_
后面的 4 个字符的十六进制数字。在以下情况下,供应商 ID 为 18D1
:
后面的PID_
是产品ID。它还有一个 4 位的十六进制数。
【讨论】:
【参考方案4】:我不知道你是否得到了解决方案,但是通过 USB 电缆将我的手机连接到我的电脑并在 ubuntu 终端上输入以下代码行我能够获得供应商 ID
lsusb
例如,如果您连接了 Nexus One,您将获得:
总线 002 设备 004:ID 18d1:4e12
在这种情况下,供应商 ID 为“18d1”,产品 ID 为“4e12”。 (我们当然对供应商 ID 感兴趣)
【讨论】:
我在 mac 上收到lsusb: /sys/bus/usb/devices//1-2: Permission denied
。
@NoumanCh 您只需要在终端上输入lsusb
。还要尝试确保可以从计算机访问您的手机。例如,如果您将 USB 配置设置为仅充电,则可以更改为传输文件【参考方案5】:
如果你想进入你的安卓应用程序,你可以使用以下代码
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
while (deviceIterator.hasNext())
UsbDevice device = deviceIterator.next();
Log.e("DB", gson.toJson(device));
【讨论】:
以上是关于如何通过 adb 获取 Android 设备的供应商 ID?的主要内容,如果未能解决你的问题,请参考以下文章