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

D / dispatchKeyEvent(12736):设备:6,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:6,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:6,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:6,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:1,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:1,操作: ACTION_UP ,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:1,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:1,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP

而且device:6的ACTION_UP从未发生。

他们应该是这样

D / dispatchKeyEvent(12736):设备:6,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:1,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:6,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:1,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:6,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP
D / dispatchKeyEvent(12736):设备:1,操作:ACTION_DOWN,keyCoe:KEYCODE_DPAD_UP

有谁可以管理多个控制器? NativeActivity是否可以解决此问题?

我的环境是

  • 设备:NVIDIA Shield TV
  • controller1:屏蔽控制器
  • controller2:Playstation 3控制器通过USB
  • 连接
  • 操作系统:Android TV
  • 最佳答案

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

    关于android - Android上的多个游戏 Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33070114/

    10-10 16:02