Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取连接到android设备的USB附件列表?_Android_Usb - Fatal编程技术网

如何获取连接到android设备的USB附件列表?

如何获取连接到android设备的USB附件列表?,android,usb,Android,Usb,我有一个基于棒棒糖的安卓盒子。这个盒子有一个USB端口,类似于Android手机中的micro USB端口。我想检查是否有任何主机在设备模式下通过android box连接到USB端口,与手机连接到PC时的情况类似。至少,我只需要检查是否有什么东西连接到这个USB端口,最多只能获取所连接主机的一些信息(制造商、型号、序列号)。我不需要任何数据通信 我试过了 UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE

我有一个基于棒棒糖的安卓盒子。这个盒子有一个USB端口,类似于Android手机中的micro USB端口。我想检查是否有任何主机在设备模式下通过android box连接到USB端口,与手机连接到PC时的情况类似。至少,我只需要检查是否有什么东西连接到这个USB端口,最多只能获取所连接主机的一些信息(制造商、型号、序列号)。我不需要任何数据通信

我试过了

UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
manager.getAccessoryList();
但结果却是空的,即使我已经将笔记本电脑连接到它,adb和文件传输正在工作


尽管进一步阅读后,android USB附件API似乎仅限于特殊的android附件。

您可以在本线程或 您可以在android上安装libusb:

(,)

UsbManager m=(UsbManager)getApplicationContext().getSystemService(USB_服务);
HashMap usbDevices=m.getDeviceList();
集合ite=usbDevices.values();
UsbDevice[]usbs=ite.toArray(新的UsbDevice[]{});
对于(usb设备usb:usb){
Log.d(“连接的usb设备”,“连接的usb设备是”+usb.getDeviceName());
}

我想他们两个都只是检查是否有任何设备连接到android设备,android设备充当USB主机。我需要检查的是,安卓设备是否连接到USB主机(如PC),安卓设备作为USB设备。这里有一个USB协议协商,其中确定基本通信参数(哪个设备是主机,哪个设备是设备,…)->在android上安装
usbmon
时,您可能会嗅到这一点,但这仅在重新编译android内核()时才可能。然后,您可以检查android上哪些与USB相关的内核模块处于活动状态(,),如果USB作为主机加载HCI驱动程序(),他们询问的是附件,而不是设备。
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());
}