首页 文章

Android USB触摸屏HID描述符问题

提问于
浏览
4

我会尽可能清楚地描述我的问题 . 我正在尝试使用Android的触摸屏设备 . 该设备是一个USB设备,我可以在各种操作系统(Windows,Mac OS X,Ubuntu)中正常工作 . 在Android 4.0.4中,我似乎遇到了问题 . 有一些触摸响应,但它不正确 . 触摸屏表现为触摸板而不是绝对触摸屏,触摸也没有正确发生 .

我一直在查看各种HID描述符,并发现以下可能导致Android问题:

Interface 0 HID Report Descriptor Mouse
Item Tag (Value)    Raw Data
Usage Page (Generic Desktop)    05 01 
Usage (Mouse)   09 02 
Collection (Application)    A1 01 
    Usage (Pointer) 09 01 
    Collection (Physical)   A1 00 
        Usage Page (Digitizer)  05 0D 
        Usage (Touch)   09 33 
        Usage Minimum (Digitizer)   19 01 
        Usage Maximum (Digitizer)   29 01 
        Logical Minimum (0) 15 00 
        Logical Maximum (1) 25 01 
        Report Count (1)    95 01 
        Report Size (1) 75 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Report Count (1)    95 01 
        Report Size (7) 75 07 
        Input (Cnst,Ary,Abs)    81 01 
        Usage Page (Generic Desktop)    05 01 
        Usage (X)   09 30 
        Usage (Y)   09 31 
        Logical Minimum (0) 15 00 
        Logical Maximum (1024)  26 00 04 
        Physical Minimum (16)   35 10 
        Physical Maximum (1024) 46 00 04 
        Unit (None) 65 00 
        Report Size (16)    75 10 
        Report Count (2)    95 02 
        Input (Data,Var,Abs,NWrp,Lin,NPrf,Null,Bit) 81 62 
    End Collection  C0 
End Collection

现在它看起来像设备报告为数字转换器和触摸设备?该设备只是一个单点触摸“点按”设备,并报告绝对X和Y坐标 .

我想知道android是否因为阅读此报告而感到困惑,因此加载数字转换器/平板电脑配置而不是触摸屏?这里有一些指针http://source.android.com/tech/input/touch-devices.html,但我真的不明白这些东西的报道/定义在哪里?

任何帮助将不胜感激 . 如有必要,我可以从HID报告中发送更多信息 .

2 回答

  • 1

    根据我的分析,我给出了这个建议 . 取X和Y的逻辑最大因子到物理最大值 .

    factorValue =逻辑最大值/ Physica最大值

    将此factorValue与来自触摸屏的原始坐标相乘,然后尝试发送到android .

  • 2

    通常,使用发送绝对坐标的鼠标设备至关重要 . 例如在Linux上,由于X11中的错误和错误设计,这将无法工作 .

    你的描述符肯定是错的 . 你不能混合鼠标和数字化仪 .
    它们是两种不同的设备类别 . 数字转换器可以是触摸屏或笔,但不是鼠标 . 您冒着驾驶员不知道如何处理您的设备的风险 . 你的描述既不是鱼也不是鸡 .

    你正在混合不同的东西:使用页面“通用桌面”与使用页面“数字化器” .

    为了确保我的项目,我不使用手工制作的描述符 . 我终于从ELO Touchsystems克隆了一个真正的触摸屏 . 这适用于我测试过的所有操作系统 . 我不能说它是否也适用于Android .

    但你可以简单地尝试我的描述符:http://www.codeproject.com/Articles/1001891/A-USB-HID-Keyboard-Mouse-Touchscreen-emulator-with

相关问题