【问题标题】:Can't see mouse and keyboard device with usbManager android看不到带有usbManager android的鼠标和键盘设备
【发布时间】:2014-11-24 01:02:42
【问题描述】:

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

我使用安卓 4.2.2。 是否可以通过 USB 主机获取鼠标(和键盘)的隐藏数据,或者我必须找到其他方式?

感谢您的帮助

【问题讨论】:

    标签: android keyboard usb mouse hid


    【解决方案1】:

    您可以通过 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()getKeyCharacterMap()等。

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回答。我可以看到我的设备。现在的问题是与它沟通。事实上,我认为我更需要 UsbDevice。
    • 谢谢,这是我找了很久的东西! UsbManager 识别出其中一个设备,却没有识别出另一个,我很困惑,我知道它正在工作。我花了几个小时试图找出我的代码或硬件可能出了什么问题。现在我用 InputManager 测试了它,它在那里找到了!
    • 是的,InputManager 将检测所有输入,包括手写笔。您或许可以将它与 UsbManager 结合使用以检测 USB 驱动器除了鼠标/键盘。
    【解决方案2】:

    如果您已经可以使用 HID 设备进行输入,则它可以作为输入设备(键盘或鼠标)工作,您无需将其作为 USB 设备访问。您可以简单地通过 OnKeyListener 等侦听器捕获来自设备的输入。

    【讨论】:

    • 我不能使用 OnKeyListener,因为我必须在后台服务上获取数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2011-09-29
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多