Я ищу не конкретный фрагмент кода, а подсказку, с чего начать свои исследования. То, что я хочу сделать, может быть легкой задачей для опытного разработчика Android.
Я просто хочу регистрировать все взаимодействия с аппаратными кнопками на более низком уровне, чем движок Dalvik. Я очень новичок в разработке для Android и никогда не разрабатывал на базе Linux/Unix, но у меня есть минимальный опыт работы с C.
Я часто встречал людей, которые спрашивали, как они могут использовать кнопку питания в своих приложениях, и я обнаружил, что в целом это невозможно или, по крайней мере, не предназначено для этого, поскольку сама система фиксирует нажатие кнопки питания и не передать его приложениям или службам, работающим в виртуальной машине Java (в отличие от нажатия кнопок управления громкостью, для ключевых событий которых вы можете зарегистрировать прослушиватель).
Я, однако, хотел бы написать простой процесс или что-то еще, что отвечало бы всем требованиям, чтобы регистрировать все нажатия кнопок (регулятор громкости, кнопка питания или любые другие аппаратные кнопки, доступные на устройстве).
Теперь, поскольку я очень новичок в этой теме, и мои знания ограничены в данный момент, мои первые идеи состояли в том, чтобы либо иметь процесс linux, либо расширение ядра для выполнения этой работы. Позже я мог бы захотеть заполнить свои собственные сообщения, события или что-то еще, что я мог бы получить в приложении или фоновой службе через JNI (если я правильно понял) позже.
Итак, вот мой вопрос: что мне нужно сделать, чтобы зафиксировать взаимодействия с аппаратными кнопками и использовать их для своих собственных целей (регистрация текстового сообщения), не мешая функциональности системы по умолчанию? Библиотека, процесс, расширение ядра или что-то совершенно другое, о чем я еще не подумал? Любые идеи или намеки высоко ценятся.
С уважением Ян Тилеманн