如何从 AccessibilityService 处理 MotionEvents(游戏手柄操纵杆移动等)

0xB*_*01b 5 android xamarin.android accessibilityservice

我有一个 AccessibilityService,它接收来自游戏控制器(ps5 控制器、xbox 控制器等)的输入。

我使用该onKeyEvent()方法来处理按钮按下和释放,所以我可以轻松处理这些。我面临的问题是如何处理操纵杆运动和顶部触发器按下,因为我不知道如何通过 AccessibilityService 处理它们。

通常,我会简单地使用onGenericMotionEvent()这些 MotionEvent 来处理这些 MotionEvent,但不幸的是 AccessibilityService 并没有为我提供这样的方法。我已经看了将近 3 周的文档和官方代码实验室,但没有运气,如果有人能告诉我如何通过 AccessibilityService 处理 MotionEvents,我会非常欣慰。

我要处理的 MotionEvents 是这些:

AXIS_X, AXIS_Y, AXIS_Y, AXIS_RZ, AXIS_RY, AXIS_RX, AXIS_HAT_X, AXIS_HAT_Y, AXIS_LTRIGGER, AXIS_RTRIGGER, AXIS_BRAKE,AXIS_GAS.

可能还有其他控制器取决于控制器,但这些是我需要处理来自控制器的输入的主要控制器。

问候, 0xB01b

小智 1

API不支持这些,因为AccessibilityServices只能过滤KeyEvents,而你所说的按钮不会产生KeyEvents。

您能解释一下您正在构建什么吗?了解添加此 API 对残疾人生活的影响将有助于我们优先考虑这项工作以及我们正在计划的其他工作。