【发布时间】:2012-04-22 14:36:14
【问题描述】:
我对如何获取 Android 设备的供应商 ID 和产品 ID 有疑问。
有没有 adb 的命令可以做到这一点?
我可以在插入设备时获取供应商ID和产品ID,但是在安装Windows驱动程序后,如果我同时插入两个设备,我无法区分真正的供应商ID。所以我需要通过 ADB 或硬件设备和 android 设备之间的任何其他连接找出供应商 ID。
【问题讨论】:
我对如何获取 Android 设备的供应商 ID 和产品 ID 有疑问。
有没有 adb 的命令可以做到这一点?
我可以在插入设备时获取供应商ID和产品ID,但是在安装Windows驱动程序后,如果我同时插入两个设备,我无法区分真正的供应商ID。所以我需要通过 ADB 或硬件设备和 android 设备之间的任何其他连接找出供应商 ID。
【问题讨论】:
希望这个link对你有帮助
-s serialNumber 是为您提供特定模拟器/设备实例的 adb 命令,由其 adb 分配的序列号引用(例如“emulator-5556”)。我认为这是您正在寻找的 adb 命令为。
【讨论】:
如果您运行的是 Ubuntu/Linux,只需键入
lsusb -v
然后按回车键。 它将显示所有 USB 设备的详细信息。 在结果中检查名为“idVendor”的字段并找到您的设备。 例如:我的摩托罗拉 Defy[vendor id = 22b8] 给出,
"idVendor 0x22b8 摩托罗拉 PCS"
【讨论】:
ADB 本身不会帮助找到连接的硬件的供应商 ID,事实上(对于 Google ADB 驱动程序),在使用 ADB 之前必须设置供应商 ID。
幸运的是,有一种简单的方法可以找到连接到 Windows PC 的任何设备的供应商 ID(和产品 ID)。该设备甚至不需要驱动程序就可以使用这种方法:
VID_ 后面的 4 个字符的十六进制数字。在以下情况下,供应商 ID 为 18D1:后面的PID_ 是产品ID。它还有一个 4 位的十六进制数。
【讨论】:
我不知道你是否得到了解决方案,但是通过 USB 电缆将我的手机连接到我的电脑并在 ubuntu 终端上输入以下代码行我能够获得供应商 ID
lsusb
例如,如果您连接了 Nexus One,您将获得:
总线 002 设备 004:ID 18d1:4e12
在这种情况下,供应商 ID 为“18d1”,产品 ID 为“4e12”。 (我们当然对供应商 ID 感兴趣)
【讨论】:
lsusb: /sys/bus/usb/devices//1-2: Permission denied。
lsusb。还要尝试确保可以从计算机访问您的手机。例如,如果您将 USB 配置设置为仅充电,则可以更改为传输文件
如果你想进入你的安卓应用程序,你可以使用以下代码
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));
}
【讨论】: