0

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

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

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

4

1 回答 1

2

正如评论中提到的,您应该提供您已经采取的步骤或您已经编写的代码来解决此功能,因为这将帮助我们调整最合适的答案。作为一般规则,您可以查看官方文档以识别 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 类在 Android 开发者网站上可用:http: //developer.android.com/reference/android/view/InputDevice.html 所以你基本上需要在你的插件类中导入它以确保上面的代码工作正常。

import  android.view.InputDevice;
于 2015-04-22T11:17:44.083 回答