用usbManager android看不到鼠标和键盘设备

时间:2014-09-29 15:17:31

标签: android keyboard usb mouse hid

我在一个项目上工作,我需要在服务上获取键盘和鼠标的数据。我还必须能够将数据发送到我的设备中。为此,我想使用USB主机模式。当我获得设备列表时,我可以看到大容量存储但没有鼠标和键盘。搜索后,我看到usbManager不返回鼠标和键盘设备。我试图更改权限(在/ system / etc / permissions上)whitout成功)。 我已经运行了应用程序USB Device Info,我在linux设备上看到鼠标和键盘,而不是在Android设备上。

我使用android 4.2.2。 有可能用usb主机获取鼠标(和键盘)的隐藏数据,或者我必须找到另一种方法吗?

感谢您的帮助

2 个答案:

答案 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之类的侦听器来捕获设备的输入。