【问题标题】:How do I determine what is the source of Input Device in android?如何确定android中输入设备的来源是什么?
【发布时间】:2013-10-09 16:48:24
【问题描述】:
【问题讨论】:
标签:
java
android
bit-fields
【解决方案1】:
bytes int name
-------------------------------------------------------------
1000000000010010100010011 //16786707 <- Device
10000 //16 <- SOURCE_CLASS_JOYSTICK
10000000001 //1025 <- SOURCE_GAMEPAD
1000000000000000000010000 //16777232 <- SOURCE_JOYSTICK
该设备是一个 GamePad、一个操纵杆和一个 class_joystick(猜猜这意味着它是一个操纵杆)。
您需要使用 AND 来检查:
int device = 16786707;
boolean is_source_class_joystick = ((device & SOURCE_CLASS_JOYSTICK) == SOURCE_CLASS_JOYSTICK);
boolean is_source_gamepad = ((device & SOURCE_GAMEPAD) == SOURCE_GAMEPAD);
boolean is_source_joystick = ((device & SOURCE_JOYSTICK) == SOURCE_JOYSTICK);
这应该可行。
编辑:我也查了,也可以认为是键盘和鼠标。