Я реализую функцию скриншота для Android 2.3 (я знаю, что в ICS уже есть функция скриншота). Я использую проект Android Screenshot Library (сокращенно ASL) в качестве основы и модифицирую его в соответствии со своими потребностями. Я также могу свободно модифицировать для него исходный код Android. Цель состоит в том, чтобы сделать что-то вроде того, что делает Galaxy Note: вы делаете снимок экрана с помощью комбинации клавиш, а затем появляется редактор, который позволяет вам изменять изображение по своему усмотрению. Скриншот можно было сделать где угодно: на главном экране, при использовании приложений и т. д.
Сейчас у меня есть 3 рабочие части: собственный двоичный файл, который захватывает экранный буфер, служба, которая взаимодействует с собственным двоичным файлом и извлекает снимок экрана, и редактор. Но я не уверен, как я мог объединить 3 вещи вместе. Собственный двоичный файл можно добавить в предустановленную часть Android, а init.rc можно изменить, чтобы он выполнялся от имени пользователя root при загрузке (хотя мне все равно нужно это сделать). Редактор — это простое приложение, которое также можно включить в Android. Но я до сих пор не могу понять, что делать с сервисом.
В идеале я хотел бы захватить комбинацию клавиш (скажем, кнопку питания и уменьшение громкости или, может быть, две кнопки на передней панели), которая запускает службу. Затем служба вызовет двоичный файл, чтобы сделать снимок экрана, и запустит намерение открыть редактор со снимком экрана. Однако, насколько мне известно, служба не может перехватывать нажатия клавиш. Кроме того, служба должна быть где-то привязана, чтобы знать, когда она должна сделать снимок экрана, поэтому я предполагаю, что мне следует изменить сам Android, чтобы запустить службу и привязаться к ней при запуске, но документация относительно исходного кода Android отсутствует. и я понятия не имею, где начать искать.
Кто-нибудь знает, какой компонент Android отвечает за нажатия клавиш и где я должен привязать свою службу? Возможен ли вообще мой подход?
Заранее благодарим за любую возможную помощь.