#java #android #system #android-source
Вопрос:
Я хочу переназначить событие, когда пользователь отправляет KEYEVENT_SEARCH. Теперь он просто запускает поисковые действия в приложениях, и если вы нажмете его во второй раз — он ничего не сделает. Я должен переопределить событие так, чтобы при первом щелчке открывался поиск, а при следующем он закрывался. Где я могу найти ответы на запросы Android? Я пытаюсь отредактировать его frameworks/base/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java
, но это не работает.
Ответ №1:
Ключи Android обрабатываются в следующей последовательности:
- Диспетчер телефонных окон:
- Перехват для проверки
- Перехватывайкейб перед отправкой
- Активность: onKeyDown/onKeyUp. Приложение может переопределить функцию обработки клавиш.
- Функция обратного вызова телефона: onKeyDown/onKeyUp
В настоящее время ключ поиска обрабатывается в 2. При обработке ключа поиска в onKeyUp сначала проверьте, запущен ли диалог поиска, затем выберите начать поиск или закрыть поиск.
Комментарии:
1. Способ 2 не подходит. Я не могу изменить код каждого приложения. Мне нужно сделать реакцию по умолчанию для всех приложений сразу в моей сборке Android
2. Вы можете измениться frameworks/base/core/java/android/app/Activity.java. Затем это вступит в силу для всех приложений. И некоторые приложения будут намереваться переопределить Activity.onKeyDown для самостоятельной обработки ключа поиска.