É possível criar um serviço Android que escute as teclas pressionadas por hardware?

Gostaria de executar um serviço em segundo plano do Android que atuará como um ouvinte de teclas na tela inicial ou quando o telefone estiver em suspensão. Isso é possível?

A partir de exemplos semi-relacionados on-line, montei o serviço a seguir, mas recebo o erro "onKeyDown é indefinido para o tipo Serviço". Isso significa que não pode ser feito sem reescrever o Launcher ou há algo óbvio que estou perdendo?

public class ServiceName extends Service {

    @Override
    public void onCreate() {
        //Stuff
    }

    public IBinder onBind(Intent intent) {
        //Stuff
        return null;
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(event.getAction() == KeyEvent.ACTION_DOWN) {
        switch(keyCode) {
        case KeyEvent.KEYCODE_A:
            //Stuff
            return true;
        case KeyEvent.KEYCODE_B:
            //Stuff
            return true;

            //etc.
        }
        }

        return super.onKeyDown(keyCode, event);
    }
}

Percebo os padrões do Android para a barra de pesquisa quando você digita na tela inicial, mas isso realmente é apenas para um uso muito particular. Eu realmente não espero que ninguém além de mim queira isso. Eu acho que seria bom, por exemplo, usar o botão da câmera para ativar o telefone.

questionAnswers(3)

yourAnswerToTheQuestion