我有一个Android应用程序枚举USB总线并搜索设备。 当我将disk-on-key或arduino board连接到总线时,app会设法检测并枚举连接的设备。但是当我使用HID(键盘和鼠标usb加密狗)时,该应用程序不会枚举它 - 虽然手机识别加密狗,我可以使用键盘和鼠标 在另一个USB设备(RF加密狗)上发生相同的枚举失败,但是对于它我无法判断它是否有效(可能需要调整设备固件)。
到目前为止我做的事情: *添加到Android Manifest。 *检查Android上是否存在android.hardware.usb.host.xml 文件夹/ system / etc / permissions中的设备。
我不知道出了什么问题,因为我确实设法使用某些设备,但不能与其他设备一起使用。
感谢
答案 0 :(得分:0)
HID类被UsbManager.java阻止
/* returns true if the USB device should not be accessible by applications */
private boolean isBlackListed(int clazz, int subClass, int protocol) {
// blacklist hubs
if (clazz == UsbConstants.USB_CLASS_HUB) return true;
// blacklist HID boot devices (mouse and keyboard)
if (clazz == UsbConstants.USB_CLASS_HID &&
subClass == UsbConstants.USB_INTERFACE_SUBCLASS_BOOT) {
return true;
}
return false;
}
你提到的RF加密狗是否是RFcat?我有同样的问题,我会尝试使用Xposed来替换方法" isBlackListed"总是返回false。我试试后会通知你。