Как перехватить motionEvents и keyEvents, которые генерируются при взаимодействии пользователя с пользовательским интерфейсом - PullRequest
1 голос
/ 06 декабря 2011

Я пытался перехватить motionEvents и keyEvents, которые генерируются в результате взаимодействия пользователя с пользовательским интерфейсом. До сих пор я исследовал эти варианты:

  1. Декс инъекция (слишком сложная)
  2. расширил мой класс активности, перехватывая motionEvents, используя dispatchTouchEvent, регистрируя событие и передавая его в super. dispatchTouchEvent (это потребует расширения всех классов активности до моего измененного класса и, возможно, ограничит мое приложение, которое уже использует dispatchTouchEvent)
  3. Использование инструментов для добавления прослушивателей в приложение (неудачная попытка, не знаю, возможно ли это)

По сути, я пытаюсь реализовать регистратор событий, чтобы, захватив движение и ключевые события, я мог создать воспроизведение записи. Одно из ограничений, которое у меня есть, - это возможность прикреплять эту запись к любому приложению для Android, поэтому мне нужно минимизировать кодирование регистраторов в самом приложении, например, я хотел бы добавить несколько jar-файлов, а затем инициализировать их в приложении следующим образом:

            public class Calculator extends Activity {

            public void onCreate(Bundle savedInstanceState) {

                initialize recorder here
            //application code
            }
            //calculator application code here
            }

Примечание. Расширение класса действия до специального класса, в котором есть код, который захватывает события с использованием dispatchTouchEvent, а затем расширение всех остальных классов действий из этого специального класса - не очень хорошая идея, поскольку, если исходное действие имеет некоторый код для dispatchTouchEvent, тогда эта функция не будет работать в расширенном специальном классе.

Также приветствуются решения с точки зрения ОС без изменения кода ОС (включая c, c ++)

1 Ответ

0 голосов
/ 20 января 2012

Вы упомянули использование слушателей событий, читали ли вы эту страницу?

http://developer.android.com/guide/topics/ui/ui-events.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...