如何通过adb获取Android设备的供应商ID?

如何通过adb获取Android设备的供应商ID?,android,vendor,Android,Vendor,我对如何获取Android设备的供应商ID和产品ID有问题 adb是否有任何命令可以执行此操作 我可以在插入设备时获得供应商id和产品id,但在安装windows驱动程序后,如果我按时插入两台设备,我无法区分真正的供应商id。因此,我需要通过ADB或硬件设备与android设备之间的任何其他连接找到供应商ID。希望这对您有所帮助 -s serialNumber是一个adb命令,它为您提供一个特定的模拟器/设备实例,由adb分配的序列号(如“emulator-5556”)引用。我认为这是您正在寻找

我对如何获取Android设备的供应商ID和产品ID有问题

adb是否有任何命令可以执行此操作

我可以在插入设备时获得供应商id和产品id,但在安装windows驱动程序后,如果我按时插入两台设备,我无法区分真正的供应商id。因此,我需要通过ADB或硬件设备与android设备之间的任何其他连接找到供应商ID。

希望这对您有所帮助


-s serialNumber是一个adb命令,它为您提供一个特定的模拟器/设备实例,由adb分配的序列号(如“emulator-5556”)引用。我认为这是您正在寻找的adb命令。

如果您运行的是Ubuntu/Linux,只需输入

"lsusb -v " 
然后按回车键。 它将显示所有USB设备的详细信息。 检查结果中名为“idVendor”的字段,然后找到您的设备。 例如:我的摩托罗拉藐视[vendor id=22b8]给出的


“idVendor 0x22b8 Motorola PC”

ADB本身不会帮助查找连接硬件的供应商ID,事实上(对于Google ADB驱动程序),在与ADB合作之前,有必要先设置供应商ID

幸运的是,有一种简单的方法可以找到连接到Windows PC的任何设备的供应商ID(和产品ID)。该设备甚至不需要驱动程序即可使用此方法:

  • 启动设备管理器
  • 在硬件树中,右键单击要确定其供应商ID的设备的硬件条目
  • 在“详细信息”选项卡上,将属性下拉列表设置为“硬件ID”。供应商ID是字母
    VID.
    后面的4个字符的十六进制数字。在以下情况下,供应商ID为
    18D1

  • 下面的
    PID\ucode>是产品ID。它还有一个4位的十六进制数。

    我不知道你是否得到了解决方案,但是通过USB电缆将我的手机连接到我的计算机上,然后在ubuntu终端上键入下面的代码行,我就能够获得供应商ID了

    lsusb
    
    例如,如果您连接了Nexus One,您将获得:

    总线002设备004:ID 18d1:4e12


    在本例中,供应商Id为“18d1”,产品Id为“4e12”(我们当然对供应商Id感兴趣)

    如果您想进入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));
        }
    
    UsbManager-manager=(UsbManager)getSystemService(Context.USB_-SERVICE);
    HashMap deviceList=manager.getDeviceList();
    迭代器deviceIterator=deviceList.values().Iterator();
    while(deviceIterator.hasNext()){
    UsbDevice device=deviceIterator.next();
    Log.e(“DB”,gson.toJson(设备));
    }
    
    谢谢你的回答,我知道serialNumber,它应该部分用pid和vid编码,但我不知道如何编码。我想要windows的ID而不是Android。我得到的是mac上的
    lsusb:/sys/bus/usb/devices//1-2:权限被拒绝
    。@nouman你只需要在终端上键入
    lsusb
    。还要确保你的pho可以从计算机访问ne。例如,如果您已将usb配置设置为“仅充电”,则可以更改为传输文件。这不会将adb拥有的信息(序列号)连接到实际的供应商/产品id。在这一级别上,使用同一型号的多部手机将无法相互识别。