为什么 Android 没有将连接的计算机视为 USB 设备或 USB 附件

Why does Android not see a connected computer as either a USB Device or USB Accessory

我正在尝试更深入地了解 Android USB API。我玩过 USB 主机 API,并已成功将各种设备(USB 记忆棒、连接了其他设备的 USB 集线器)连接到我的 Android phone(Phone 作为主机)。我发现了设备、提取了信息、探索了接口、端点信息等

当我将 Phone 插入我的 PC 时,我假设 PC 将被枚举为设备或附件,但它并没有显示为两者。

这是我用来发现所有设备和配件的代码

   UsbManager manager = (UsbManager) getSystemService(USB_SERVICE);

   UsbAccessory[] as = manager.getAccessoryList();
   if (as != null) {
       Log.i("Usb", "Found Accessory " + as[0].toString());
   } else {
       Log.i("Usb", "no accessory found");
   }

   HashMap<String, UsbDevice> ds = manager.getDeviceList();
   if (ds == null || ds.isEmpty()) {
       Log.i("Usb", "no devices found");
   } else {
       for (Map.Entry e : ds.entrySet()) {
           Log.i("Usb", "Found device " + e.getValue().toString());
       }
   }

为什么 phone 不将 PC 视为设备或附件?

When I plug my Phone into my PC I assumed the PC would be enumerated as either a Device or an Accessory, but it does not show up as either.

没有。 PC 始终 主机,Android 在 PC 上枚举为设备。

因此您永远不会在 UsbManager 设备列表中获得 PC。此API仅在Android为宿主时使用