Dopo la ricerca per 1 giorno intero ho raggiunto a sotto conclusione.
Android non consente di intercettare gli input di tastiera software di default dai servizi in background. L'unico modo per intercettare questi eventi sono le tastiere personalizzate.
ho riassunto come segue:
In chiave di registrazione Android per gli eventi della tastiera non è supportata in servizi in background. Alcuni dei link sono i seguenti:
Punto 1: Google Android Developer
metodi di input Come morbide possono utilizzare più e fantasiosi modi di immettere il testo, non v'è alcuna garanzia che qualsiasi pressione di un tasto su una tastiera morbida genererà un evento chiave: questo è lasciato alla discrezione dell'IME, e infatti l'invio di tali eventi è scoraggiato. Non dovresti mai fare affidamento sulla ricezione di KeyEvents per qualsiasi tasto su un metodo di input morbido. In particolare, la tastiera software predefinita non invierà mai eventi chiave a nessuna applicazione destinata a Jelly Bean o successiva e invierà solo eventi per alcune pressioni dei tasti cancella e restituisci alle applicazioni destinate a Ice Cream Sandwich o versioni precedenti.
http://developer.android.com/reference/android/view/KeyEvent.html
Android Jelly Bean è: da 4.1 a 4.3.1 Android IceCream Sandwich: 4,0
presse chiave su metodi di input morbide non sono tenuti a innescare i metodi in questo ascoltatore, e sono in realtà scoraggiato a farlo. La tastiera Android predefinita non le attiverà per nessuna chiave per nessuna applicazione destinata a Jelly Bean o successiva, e la distribuirà solo per alcune pressioni dei tasti per le applicazioni destinate a Ice Cream Sandwich o precedenti.
http://developer.android.com/reference/android/text/method/KeyListener.html
Punto 2: Stack Overflow KeyEvents può essere gestita solo da attività in quanto sono l'interfaccia per l'utente premendo i tasti e solo quando sono in primo piano. Anche i servizi eseguiti in background non sono pensati per reagire all'input dell'utente.
Android - Listener for hard keys press at background
Is it possible to create an Android Service that listens for hardware key presses?
Punto 3: Romain Guy Romain Guy (https://stackoverflow.com/users/298575/romain-guy) che lavora per Google conferma anche onKeyDown in a service? (Global Hot Keys)
Punto 4: Alcuni Alternativi:
Google Android-sviluppatori Gruppo: https://groups.google.com/forum/#!topic/android-developers/o--GUWmqXdI
può essere fatto solo utilizzando tastiera personalizzata: get pressed key and throw another key in android
Si prega di aggiungere i tuoi commenti se si pensa che ho perso qualcosa.
hai trovato la tua risposta? –
Sì, ho aggiornato la mia ricerca come risposta accettata, per favore passaci attraverso. –