使用以下代码,我可以列出连接到 Android 设备的 inputDevices。
public void onClick(View v) {
if(v==mConnect){
Toast.makeText(MainActivity.this, "TESTE", Toast.LENGTH_LONG).show();
Log.d("INPUTDEVICES", "111111111111111111111");
int[] teste;
teste = new int[10];
for(int i=0;i<5;i++){
teste[i]=-1;
}
teste = InputDevice.getDeviceIds();
for(int i=0;i<5;i++){
Log.d("TESTE", Integer.toString(teste[i]));
Log.d("TESTEE",InputDevice.getDevice(teste[i]).getName());
}
}
}
D/INPUTDEVICES( 6572): 111111111111111111111
D/TESTE ( 6572): 1
D/TESTEE ( 6572): Phone_key
D/TESTE ( 6572): 3
D/TESTEE ( 6572): ssd253x-ts
D/TESTE ( 6572): 4
D/TESTEE ( 6572): sun4i-keyboard
D/TESTE ( 6572): 5
D/TESTEE ( 6572): axp20-supplyer
D/TESTE ( 6572): 8
D/TESTEE ( 6572): Logitech USB Keyboard
现在我想等待来自特定输入设备的文本,在本例中是输入设备 8 - Logitech USB 键盘。你能帮我解决这个问题吗?
谢谢 :)
编辑
我想要这样的东西:
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
Toast.makeText(UITestsActivity.this,
"YOU CLICKED ENTER KEY",
Toast.LENGTH_LONG).show();
return true;
}
return super.dispatchKeyEvent(e);
};
但这适用于所有键盘键,如'a','b','c',...