我最近从 Think Geek 购买了一个用于游戏的 8 位 iCade 控制器,不幸的是,由于设计原因,这个控制器几乎没用。它枚举为 HID 键盘,但缺陷是每个按钮都有两个键码并且没有键重复:
- w/e = 向上向下/向上
- x/z = 向下/向上
- a/q = 左下/上
- d/c = 右下/上
- y/t = 向下/向上选择
- u/f = 向下/向上启动
- k/p = B 向下/向上
- l/v = 向下/向上
- i/m = X 向下/向上
- o/g = Y 向下/向上
- h/r = L 向下/向上
- j/n = R 向下/向上
由于同一按钮的不同键码组合且没有重复键,因此无法将其用作 android 中的本机游戏手柄。我曾尝试使用 SDK 中的 Softkeyboard 示例应用程序来拦截硬件按键事件,但在让它永远按下按钮并且我的手机锁定并重新启动之后一直没有成功。
为了处理重新启动,我尝试使用 asynctask 但我做不到
while (keyCode != KeyEvent.KEYCODE_Q){
keyDownUp(KeyEvent.KEYCODE_A);
}
在 doinbackground 因为 keyCode 未定义。
这应该/如何实现?