我有一个本地C ++ Android应用程序。
我正在使用AINPUT_SOURCE
枚举来过滤输入事件进入我的本机活动的过程。目前,我只关心AINPUT_SOURCE_TOUCHSCREEN (0x1002)
。
这似乎可以在99%的设备上运行,但是Motorola Moto G6 Plus不符合该标准。
G6报告输入源为0x5002。无论您点击触摸屏多少次,设备都不会发送实际的触摸屏输入事件。
在G6的数月用户报告无法玩我的游戏之后,我只能通过自己购买来发现这一点。
Android NDK官方参考站点甚至都没有列出值(0x5002)的输入源。
我环顾四周,似乎没有关于此问题的讨论。
还有其他我应该知道的AINPUT_SOURCE类型吗? NDK参考上未列出的那些。
我希望能够继续使用这些标志,以使我的触摸输入代码与键盘,鼠标,控制器按钮等分开。
谢谢!
Android NDK输入参考:
答案 0 :(得分:1)
这些是ENUM,因此您必须以这种方式进行计算:5002由0x02 + 0x1000 + 0x4000 =触摸屏+手写笔+按钮组成。该设备似乎有一个手写笔和一个按钮,因此您将获得所有这三件事的事件。要检查设备是否支持TOUCHSCREEN,您只需执行“ founded_flag&0x1000 == 0x1000”,并且如果此检查为您提供了TRUE值,则该设备将支持常见的touscreen行为。