onKeyDown dans un service? (Touches de raccourci globales)

Ce que j'essaie à atteindre est de coutume mondial de touches de raccourci, ou en d'autres termes, "les choses vont se produire lorsque que j'appuie sur certaines touches de n'importe quel programme est actuellement sur le dessus'.
Je suppose qu'un service est nécessaire.

J'ai un moyen rapide et sale de test qui me dit juste ce qui a été pressé que de travailler si c'est la fenêtre active.

public boolean onKeyDown(int keyCode, KeyEvent event) {
    char pop;
    pop = (char)event.getUnicodeChar();
    Toast.makeText(this, Character.toString(pop) , Toast.LENGTH_SHORT).show();
    return super.onKeyDown(keyCode, event);
  }

Mais, évidemment, si je change de fenêtre ou dans une zone de texte, il ne fonctionne pas. Si je le coller directement dans un service (ou un imputmethodservice) et de lancer le service, rien ne se passe. (Certaines autorisations requises peut-être?)
Toutes les suggestions où je vais mal? Ou une meilleure façon de capturer le bouton est pressé?

Merci!

source d'informationauteur Fizz