Источник для Android. Редактирование ключевых событий

#java #android #system #android-source

Вопрос:

Я хочу переназначить событие, когда пользователь отправляет KEYEVENT_SEARCH. Теперь он просто запускает поисковые действия в приложениях, и если вы нажмете его во второй раз — он ничего не сделает. Я должен переопределить событие так, чтобы при первом щелчке открывался поиск, а при следующем он закрывался. Где я могу найти ответы на запросы Android? Я пытаюсь отредактировать его frameworks/base/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java , но это не работает.

Ответ №1:

Ключи Android обрабатываются в следующей последовательности:

  1. Диспетчер телефонных окон:
  • Перехват для проверки
  • Перехватывайкейб перед отправкой
  1. Активность: onKeyDown/onKeyUp. Приложение может переопределить функцию обработки клавиш.
  2. Функция обратного вызова телефона: onKeyDown/onKeyUp

В настоящее время ключ поиска обрабатывается в 2. При обработке ключа поиска в onKeyUp сначала проверьте, запущен ли диалог поиска, затем выберите начать поиск или закрыть поиск.

Комментарии:

1. Способ 2 не подходит. Я не могу изменить код каждого приложения. Мне нужно сделать реакцию по умолчанию для всех приложений сразу в моей сборке Android

2. Вы можете измениться frameworks/base/core/java/android/app/Activity.java. Затем это вступит в силу для всех приложений. И некоторые приложения будут намереваться переопределить Activity.onKeyDown для самостоятельной обработки ключа поиска.