3

根据该网站https://developer.android.com/training/game-controllers/multiple-controllers.html,Android 似乎支持多个游戏手柄。实际上,当多个输入设备事件同时发生时它不起作用。例如,当 player1 和 player2 同时按下向上按钮时,dipathKeyEvents 会发生如下所示。

D/dispatchKeyEvent(12736): device:6,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:6,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:6,action:ACTION_DOWN ,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:6,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:1,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:1 ,action: ACTION_UP ,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:1,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:1,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP

并且 device:6 的 ACTION_UP 从未发生过。

他们应该是这样的

D/dispatchKeyEvent(12736): device:6,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:1,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:6,action:ACTION_DOWN ,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:1,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:6,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP D/dispatchKeyEvent(12736): device:1 ,action:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP

有没有人可以管理多个控制器?NativeActivity 是否解决了这个问题?

我的环境是

  • 设备:NVIDIA Shield TV
  • controller1:屏蔽控制器
  • controller2:Playstation 3 控制器通过 USB 连接
  • 操作系统:安卓电视
4

1 回答 1

0

Android 中有一个错误会导致来自一个控制器的 onKeyDown/onKeyUp 事件有时被错误地识别为来自另一个控制器。这只发生在方向键上,其他按钮工作正常。您可以通过实现 onGenericMotionEvent 并自己处理方向键事件(AXIS_HAT_X、AXIS_HAT_Y)来解决此错误。有关该错误和解决方法的更多信息:https ://playjam.com/develop/guides/controller

于 2016-11-26T06:11:26.293 回答