获取当前遥控器或游戏控制器

Get current remote or game controller

如何在 java 的应用程序中获取当前输入设备?我想知道正在使用的是遥控器还是游戏手柄。

这是一个 android 应用程序,我想 运行 在 Amazon FireTV 上。与亚马逊 Kindle 不同,它没有触摸屏,但您可以使用遥控器或游戏控制器。我想知道是否可以检测用户当前使用的是哪种输入设备。

我现在拥有的代码是标准的 Cordova 应用程序代码,但是当我知道如何检测当前输入设备时,我会制作一个插件来将值传递给 java 脚本代码。那不是问题。

如评论中所述,您应该提供已采取的步骤或已编写的代码来解决此功能,因为这将帮助我们调整最合适的答案。 作为一般规则,您可以查看官方文档来识别 Fire TV 上的控制器。 https://developer.amazon.com/public/solutions/devices/fire-tv/docs/identifying-controllers

基本上,你需要在你的Cordova插件中编写识别代码如下:

int hasFlags = InputDevice.SOURCE_GAMEPAD | InputDevice.SOURCE_JOYSTICK;
boolean isGamepad = inputDevice.getSources() & hasFlags == hasFlags;

这样您就可以确定它是否是游戏手柄。对于 Fire TV 遥控器,您需要的代码是:

int hasFlags =  InputDevice.SOURCE_DPAD;
bool isRemote = (inputDevice.getSources() & hasFlags == hasFlags)
    && inputDevice.getKeyboardType() == InputDevice.KEYBOARD_TYPE_NON_ALPHABETIC;

InputDevice class 在 Android 开发者网站上可用: http://developer.android.com/reference/android/view/InputDevice.html 所以你基本上需要在你的插件中导入它 class 以确保上面的代码工作正常。

import  android.view.InputDevice;