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