Я не ищу конкретный фрагмент кода, а не подсказку, с чего начать исследования. То, что я хочу сделать, может быть легкой задачей для опытного разработчика Android.Android/Linux: использование ключа (power) на более низком уровне системы
Я просто хочу зарегистрировать все взаимодействия с аппаратными кнопками на более низком уровне, чем двигатель Dalvik. Я очень новичок в разработке Android, и я никогда не занимался разработкой на базе Linux/Unix, но у меня есть некоторый минимальный опыт в C.
Я часто находил людей, спрашивающих, как они могут использовать кнопку питания в своих Приложениях и что Я выяснил, что в целом это невозможно или, по крайней мере, не нужно делать, поскольку сама система захватывает нажатие кнопки питания и не передает ее приложениям или службам, работающим на Java VM (в отличие от нажатий на громкость кнопки управления, для чьи ключевые события вы можете зарегистрировать прослушиватель).
Я, однако, хотел бы написать простой процесс или что угодно, что бы соответствовало законопроекту для регистрации всех нажатий кнопок (регулятор громкости, кнопка питания или любые аппаратные кнопки доступны на устройстве).
Теперь, поскольку я очень новичок в этой теме, и мои знания ограничены в этот самый момент, мои первые идеи заключались в том, чтобы либо выполнить процесс linux, либо расширение ядра для выполнения этой задачи. Позже я мог бы захотеть заполнить свои собственные сообщения, события или что-то другое, что я мог бы получить в приложении или фоновом сервисе через JNI (если бы я понял это правильно) позже.
Итак, мой вопрос: что мне нужно сделать, чтобы захватить взаимодействие аппаратных кнопок и использовать их для моих целей (протоколирование текстового сообщения), не мешая функциональности системы по умолчанию? Библиотека, процесс, расширение ядра или что-то совершенно другое, о котором я еще не думал? Любые идеи или подсказки высоко ценятся.
Сердечные приветы Jan Тилеманн
Как это принято, это звучит как не по теме и относится к нему в другом месте (например, Super User). – ozbek
чтение из/dev/input/eventX? (select(), poll()) - https://www.kernel.org/doc/Documentation/input/ – subin