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); 

0 ответов

Другие вопросы по тегам