我在 USB Host documentation 的设备过滤器中看到这个接口(interface)子类但 int 也未在 UsbConstants documentation 中定义.
我插入USB有两种情况。
其中之一,我的应用程序在开发板的前台运行(运行 android 4.x)。当我插入 USB 时,我收到了 Action
android.hardware.usb.action.USB_DEVICE_ATTACHED
然后打印出我得到的设备界面
Interface: UsbInterface[mId=0,mClass=255,mSubclass=66,mProtocol=1,mEndpoints=[Landroid.os.Parcelable;@418044c0]
另一方面,应用程序已关闭。当我插入设备并接受提示时,我收到附加的操作并打印出接口(interface)列表,其中似乎有两个设备
Interface: UsbInterface[mId=0,mClass=255,mSubclass=255,mProtocol=0,mEndpoints=[Landroid.os.Parcelable;@417496c8]
Interface: UsbInterface[mId=1,mClass=255,mSubclass=66,mProtocol=1,mEndpoints=[Landroid.os.Parcelable;@417498b0]
那么,什么是 mSubclass 66(我知道 255 是 UsbConstants.USB_CLASS_VENDER_SPEC
,我相信这是我的 USB 附件),为什么两种不同的情况会产生两种不同的结果?
最佳答案
因为您的设备类别是特定于供应商的,所以由供应商定义子类,因此 usb.org 不会定义任何内容。如果您需要更多信息,您应该查找设备的供应商(您可以从设备描述符中的 VID 中找到供应商)。
如果您在打开应用程序时发现缺少其中一个接口(interface),则可能是它已经在设备上打开了一个句柄,而您无法访问它。
关于android - 什么是 USB 接口(interface)子类 66?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20802581/