пытаюсь перепрограммировать клавиши громкости - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь перепрограммировать функциональность клавиш увеличения и уменьшения громкости. В моем подходе используется плавающее представление, которое перехватывает ключевые события (аналогично приложению `головы чата). Флаг представления, который я использую: LayoutParams.FLAG_NOT_TOUCH_MODAL, но, к сожалению, это блокирует другие события. Например, если я пытаюсь использовать приложение для обмена сообщениями, клавиатура не появляется, а кнопка BackButton блокируется. Это связано с тем, что мой взгляд имеет фокус.

Следуя совету не работает для моего случая. На github У меня есть полный код.

Я борюсь с частью флагов вида. У тебя есть идеи для меня? Нужно ли использовать другой подход, чтобы иметь представление, которое реагирует на ключевые события и не мешает остальным приложениям?

        @Override
        public boolean dispatchKeyEvent(KeyEvent event) {

            int keyCode = event.getKeyCode();
            int action = event.getAction();

            Log.d(TAG, MotionEvent.actionToString(action)
                    + ", " + KeyEvent.keyCodeToString(keyCode));

            if (event != null && mListener != null) {
                if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
                    mListener.onBackButtonPressed();
                    return true;
                }

                if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) {
                    Toast.makeText(getContext(), "volume up", Toast.LENGTH_SHORT).show();
                    return true;
                }

                if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
                    Toast.makeText(getContext(), "volume down", Toast.LENGTH_SHORT).show();
                    return true;
                }
            }
            return super.dispatchKeyEvent(event);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...