¿Es posible crear un servicio de Android que escuche las pulsaciones de teclas de hardware?

Me gustaría ejecutar un servicio en segundo plano de Android que actuará como escucha de teclas desde la pantalla de inicio o cuando el teléfono esté inactivo. es posible?

A partir de ejemplos en línea relacionados, preparé el siguiente servicio, pero recibí el error "onKeyDown no está definido para el tipo Servicio". ¿Significa esto que no se puede hacer sin reescribir Launcher, o hay algo obvio que me estoy perdiendo?

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);
    }
}

Me doy cuenta de que Android usa de forma predeterminada la barra de búsqueda cuando escribes desde la pantalla de inicio, pero esto es solo para un uso muy particular. Realmente no espero que nadie más que yo quiera esto. Solo creo que sería bueno, por ejemplo, usar el botón de la cámara para activar el teléfono.

Respuestas a la pregunta(3)

Su respuesta a la pregunta