获取当前的远程或游戏控制器

时间:2015-04-15 12:38:44

标签: java amazon-fire-tv

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

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

我到目前为止的代码是标准的Cordova应用程序代码,但是当我知道如何检测当前输入设备时,我会创建一个插件来将值传递给javascript代码。那不是问题。

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,您应该提供已经采取的步骤或您已经编写的代码来解决此功能,因为这将有助于我们调整最合适的答案。 作为一般规则,您可以查看官方文档以识别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;

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

import  android.view.InputDevice;