我有一个基于棒棒糖的安卓盒子。该盒子有一个 USB 端口,类似于 Android 手机中的微型 USB 端口。我想检查是否有任何主机连接到 USB 端口,并且 Android 盒子处于设备模式,类似于手机连接到 PC 时的情况。至少,我只需要检查是否有东西连接到该 USB 端口,并且最多获取所连接主机的一些信息(制造商、型号、序列号)。我不需要任何数据通信。
我已经尝试过
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
manager.getAccessoryList();
但即使我已将笔记本电脑连接到它并且 adb 和文件传输正在工作,它仍然是空的。
虽然进一步阅读后发现 Android USB 配件 API 仅限于特殊的 Android 配件。
UsbManager m = (UsbManager)getApplicationContext().getSystemService(USB_SERVICE);
HashMap<String, UsbDevice> usbDevices = m.getDeviceList();
Collection<UsbDevice> ite = usbDevices.values();
UsbDevice[] usbs = ite.toArray(new UsbDevice[]{});
for (UsbDevice usb : usbs) {
Log.d("Connected usb devices","Connected usb devices are "+ usb.getDeviceName());
}
您可以像此线程中一样使用 Android USBManager Android:如何检测已连接的 USB 设备? 或 你可以在android上安装libusb:https://github.com/libusb/libusb/tree/master/android
(https://developer.android.com/guide/topics/connectivity/usb/host.html,https:// electronics.stackexchange.com/questions/49140/what-exactly-are-the-difference -USB 主机和设备之间)