我在一个项目上工作,我需要在服务上获取键盘和鼠标的数据。我还必须能够将数据发送到我的设备中。为此,我想使用USB主机模式。当我获得设备列表时,我可以看到大容量存储但没有鼠标和键盘。搜索后,我看到usbManager不返回鼠标和键盘设备。我试图更改权限(在/ system / etc / permissions上)whitout成功)。 我已经运行了应用程序USB Device Info,我在linux设备上看到鼠标和键盘,而不是在Android设备上。
我使用android 4.2.2。 有可能用usb主机获取鼠标(和键盘)的隐藏数据,或者我必须找到另一种方法吗?
感谢您的帮助
答案 0 :(得分:3)
您可以通过InputManager检测鼠标/键盘:
if(Build.VERSION.SDK_INT > 15) {
InputManager inptmgr = (InputManager)getSystemService(INPUT_SERVICE);
int[] inputs = inptmgr.getInputDeviceIds();
for(int i = 0;i<inputs.length;i++) {
String devicename = inptmgr.getInputDevice(inputs[i]).getName();
if(devicename.toLowerCase().contains("mouse")) {
} else if(devicename.toLowerCase().contains("keyboard")) {
}
}
}
对于您可能想要收集的任何其他数据,您可以浏览getInputDevice()
下的所有其他方法,例如getVendorId()
,getProductId()
,getMotionRange()
,{{1和其他人。
希望这有帮助!
答案 1 :(得分:0)
如果您已经可以使用HID设备进行输入,那么&#39;作为输入设备(键盘或鼠标)工作,您不需要将其作为USB设备访问。您可以通过诸如OnKeyListener之类的侦听器来捕获设备的输入。