通过这种方式,我找到了识别连接设备是否为存储设备的解决方案。
我正在关注这篇论文以了解 USB 与存储设备的通信是如何完成的。但我面临的主要问题是,对于所有连接的设备,除了最后一个连接的设备,我没有得到 UsbInterface 以及相关的 UsbEndPoints。现在我如何识别所有其他连接的存储设备。
当连接 3 个设备时,我得到的日志是:
found usb device: UsbDevice[
mName=/dev/bus/usb/001/009,
mVendorId=1423,
mProductId=25479,
mClass=0,
mSubclass=0,
mProtocol=0,
mManufacturerName=Generic,
mProductName=Mass Storage,
mSerialNumber=EE44CC66,
mConfigurations=[UsbConfiguration[mId=1,mName=null,mAttributes=128,mMaxPower=100,
mInterfaces=[
UsbInterface[mId=0,mAlternateSetting=0,mName=null,mClass=8,mSubclass=6,mProtocol=80,
mEndpoints=[
UsbEndpoint[mAddress=1,mAttributes=2,mMaxPacketSize=512,mInterval=0]
UsbEndpoint[mAddress=130,mAttributes=2,mMaxPacketSize=512,mInterval=0]
]
]
]
found usb device: UsbDevice[
mName=/dev/bus/usb/001/003,
mVendorId=3141,
mProductId=21236,
mClass=0,
mSubclass=0,
mProtocol=0,
mManufacturerName=AliTV Remote V1,
mProductName=Airmouse,
mSerialNumber=null,
mConfigurations=[UsbConfiguration[mId=1,mName=null,mAttributes=160,mMaxPower=50,
mInterfaces=[]
]
found usb device: UsbDevice[
mName=/dev/bus/usb/001/007,
mVendorId=1423,
mProductId=25479,
mClass=0,
mSubclass=0,
mProtocol=0,
mManufacturerName=Generic,
mProductName=Mass Storage,
mSerialNumber=94012721,
mConfigurations=[UsbConfiguration[mId=1,mName=null,mAttributes=128,mMaxPower=100,
mInterfaces=[]
]