Android上如何连接多个游戏手柄?

3
根据https://developer.android.com/training/game-controllers/multiple-controllers.html,Android似乎支持多个游戏手柄。实际上,当同时发生多个输入设备事件时并不起作用。例如,当玩家1和玩家2同时按下向上按钮时,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
并且设备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电视 - 控制器1:Shield controller - 控制器2:通过USB连接的Playstation 3控制器 - 操作系统:Android TV
1个回答

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接