Назначение аппаратной кнопки для активации и запуска функций в приложении - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть устройство, на котором запущена слегка измененная версия AOSP, я также удаляю Launcher и другие приложения по умолчанию, чтобы запускалось только мое приложение.

Устройство имеет вторую аппаратную кнопку, которую мы хотели бы вызвать событие «в приложении», оно должно разбудить устройство, показать новое действие и выполнить некоторые HTTP-события на уровне приложения.В настоящее время она назначена кнопке «Назад», но я думаю, что мне нужно добавить пользовательское событие ввода с клавиатуры, но не знаю, с чего начать.

Кто-нибудь пытался сделать что-то подобное / какие-либо идеи о том, с чего начать?

Думал попытаться заставить кнопку «Назад» создать событие пробуждения, чтобы приложение получало OnBackPressed, даже когда устройство спит, хотя я не уверен, что это лучший способ приблизиться к нему.

1 Ответ

0 голосов
/ 12 сентября 2018
  1. Убедитесь, что ваша дополнительная аппаратная кнопка генерирует подходящее событие ключа Linux. Прочитайте http://newandroidbook.com/Book/Input.html, если вы не знаете, как это проверить. Если кнопка еще не вызывает события клавиш или если код клавиши не подходит, вам нужно добавить / отредактировать наложение дерева устройств. Это имеет мало общего с Android, но зависит от вашего оборудования. Скорее всего, вы найдете некоторую помощь в документации по оборудованию для Linux

  2. Затем вы сопоставили бы этот код ключа linux с событием ключа android, используя файл разметки ключа android. Там необходимо добавить флаг WAKE, чтобы устройство проснулось и передало событие в ваше приложение. Вот соответствующая глава справки AOSP: https://source.android.com/devices/input/key-layout-files

  3. Перехватить ключевое событие в вашем приложении для Android (похоже, вам уже удалось это сделать)

...