如何禁用 Android 游戏手柄默认控件?

Posted

技术标签:

【中文标题】如何禁用 Android 游戏手柄默认控件?【英文标题】:How to disable Android gamepad default controls? 【发布时间】:2015-04-13 17:03:18 【问题描述】:

我正在尝试制作一个由游戏手柄控制的应用。我已经让它工作得很好,但是当插入游戏手柄时,android 有一些用于导航的默认控件,例如 B 按钮带你返回一个菜单。我希望能够使用 Android 默认设置的按钮。有没有办法禁用默认的 Android 控件?我找不到任何关于默认 Android 游戏手柄控件的信息,更不用说如何禁用它们了。

【问题讨论】:

【参考方案1】:

我想通了。对于将来需要此功能的任何人,这里是如何做到的。当你添加 onKeyDown 覆盖命令时,它是这个样子的。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)

    return super.onKeyDown(keyCode, event);

据我了解,该返回行使 Android 系统可以访问按钮按下。但是,如果你让它总是返回 true,Android 系统永远不会看到输入。例如:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)

    if(keyCode == KeyEvent.KEYCODE_BUTTON_A)
    
        buttonAPressed = true;
    
    return true;

我不知道这是否是最好的方法,但这是我的工作。希望这可以帮助任何需要它的人!

【讨论】:

这似乎也是亚马逊推荐的用于 Fire TV 遥控器和控制器的方法 ;-) developer.amazon.com/docs/fire-tv/remote-input.html

以上是关于如何禁用 Android 游戏手柄默认控件?的主要内容,如果未能解决你的问题,请参考以下文章

使用 android 游戏手柄操纵杆时如何监听开关 MotionEvent.AXIS?

Android Things:树莓派游戏手柄 USB

频繁检查 LWJGL/JInput 游戏手柄按钮或轴时出现延迟,如何解决?

htc vive的手柄怎么和unity

游戏手柄支持隆隆声?

将安卓手机变成游戏手柄,通过wi-Fi连接电脑