如何在java中获取我的应用程序中的当前输入设备?我想知道的是正在使用的遥控器或游戏控制器。
这是一个我想在亚马逊FireTV上运行的Android应用程序。与亚马逊Kindle不同,它没有触摸屏,但您可以使用遥控器或游戏控制器。我想知道是否有可能检测到用户当前正在使用哪种输入设备。
我到目前为止的代码是标准的Cordova应用程序代码,但是当我知道如何检测当前输入设备时,我会创建一个插件来将值传递给javascript代码。那不是问题。
答案 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;