Android KeyBoardView - Нажатие клавиш-модификаторов обнаружения
Я работаю над Customized Keyboard, я должен управлять ПК с помощью Android Keyboard, поэтому для этого я реализовал клавиатуру. в моей активности нет редактируемого текста / текстового представления для отображения клавиатуры. Я отображаю клавиатуру при нажатии кнопки. Теперь я не могу обнаружить нажатие клавиш Modifer, таких как Ctrl/Alt. Я реализовал прослушиватель действий клавиатуры, но не существует метода для обработки комбинации клавиш, например KeyDown/KeyUp. Вот мой слушатель, пожалуйста, проверьте, предложите.
public OnKeyboardActionListener mOnKeyboardActionListener = new OnKeyboardActionListener() {
public final static int CodeDelete = -5; // Keyboard.KEYCODE_DELETE
public final static int CodeCancel = -3; // Keyboar d.KEYCODE_CANCEL
public final static int CodePrev = 55000;
public final static int CodeAllLeft = 55001;
public final static int CodeLeft = 55002;
public final static int CodeRight = 55003;
public final static int CodeAllRight = 55004;
public final static int CodeNext = 55005;
public final static int CodeClear = 55006;
@Override
public void onKey(int primaryCode, int[] keyCodes) {
isAnimate = false;
Log.e("ON KEY METHOD", "KEY CODE IS " + primaryCode);
System.out.println("primaryCodeprimaryCode====>>>>>>>>>>"
+ primaryCode);
switch (primaryCode) {
case KeyEvent.KEYCODE_A:
System.out.println("********A PRESSED ******");
break;
case KeyEvent.KEYCODE_B:
System.out.println("********B PRESSED ******");
break;
case KeyEvent.KEYCODE_CTRL_LEFT:
Log.e("Control KEY PREES IN ON KEY", "" + primaryCode);
System.out.println("********Control KEy PRESSED ******");
break;
default:
break;
}
}
@Override
public void onPress(int arg0) {
Log.e("######ON PRESSS", "KEY CODE IS" + arg0);
System.out.println("on onPress" + arg0);
}
@Override
public void onRelease(int primaryCode) {
Log.e("*****ON onRelease", "KEY CODE IS " + primaryCode);
System.out.println("on Release" + primaryCode);
}
@Override
public void onText(CharSequence text) {
Log.e("*****ON onText", "KEY CODE IS " + text);
System.out.println("on text" + text);
}
@Override
public void swipeDown() {
}
@Override
public void swipeLeft() {
}
@Override
public void swipeRight() {
}
@Override
public void swipeUp() {
}
};
Это код для отображения пользовательской клавиатуры в действии.
mKeyboardView = (KeyboardView) findViewById(R.id.keyboardview);
mKeyboardView.setOnKeyboardActionListener(mOnKeyboardActionListener);
mKeyboardView.setKeyboard(new Keyboard(
MainActivity.this, R.xml.qwerty));
mKeyboardView.setPreviewEnabled(true);