Po badaniu przez cały dzień doszedłem do poniższego wniosku.
Android nie zezwala na przechwytywanie domyślnych wejść klawiatury miękkiej z usług tła. Jedynym sposobem na przechwycenie tych zdarzeń są klawisze niestandardowe.
mam podsumować w następujący sposób:
W Android Key rejestrowania zdarzeń klawiaturowych nie jest obsługiwana w usługach tła. Niektóre linki są następujące:
Punkt 1: Google Android Developer
tak miękkie sposoby wejściowe mogą korzystać z wielu i pomysłowe sposoby wprowadzania tekstu, nie ma gwarancji, że każdy naciśnięcie klawisza na klawiaturze programowej wygeneruje kluczowe zdarzenie: pozostawia to do wyboru IME, a w rzeczywistości wysyłanie takich wydarzeń jest odradzane. Nigdy nie należy polegać na odbiorze KeyEvents dla dowolnego klawisza metodą miękkiego wprowadzania danych. W szczególności domyślna klawiatura oprogramowania nigdy nie wyśle żadnego kluczowego wydarzenia do żadnej aplikacji kierującej reklamy Jelly Bean lub późniejszej, i będzie wysyłała tylko zdarzenia dla niektórych naciśnięć klawiszy usuwania i zwracania do aplikacji, w których celem jest Ice Cream Sandwich lub wcześniej.
http://developer.android.com/reference/android/view/KeyEvent.html
Android Jelly Bean jest: 4.1 do 4.3.1 Android kanapka lodowa: 4,0
Kluczowe naciska na miękkich metod wejściowych nie są wymagane do wywołania metody w tym słuchacza, i są w rzeczywistości zniechęcać do tego. Domyślna klawiatura Android nie uruchomi ich dla żadnego klucza do żadnej aplikacji kierującej Jelly Bean lub później, i dostarczy ją tylko w przypadku niektórych naciśnięć klawiszy aplikacjom, które kierują reklamy na Ice Cream Sandwich lub wcześniej.
http://developer.android.com/reference/android/text/method/KeyListener.html
Punkt 2: przepełnienie stosu KeyEvents mogą być obsługiwane tylko przez działania, ponieważ są one interfejs użytkownika naciskając klawisze i tylko wtedy, gdy są one na pierwszym planie. Nawet usługi działające w tle nie mają reagować na dane wprowadzone przez użytkownika.
Android - Listener for hard keys press at background
Is it possible to create an Android Service that listens for hardware key presses?
Punkt 3: Romain Guy Romain Guy (https://stackoverflow.com/users/298575/romain-guy), który pracuje dla Google potwierdza to również onKeyDown in a service? (Global Hot Keys)
Punkt 4: Niektóre Inne odniesienia:
Google Android deweloperów Grupa: https://groups.google.com/forum/#!topic/android-developers/o--GUWmqXdI
Można to zrobić tylko za pomocą Custom klawiatury: get pressed key and throw another key in android
proszę dodać swój komentarz, jeśli myślisz, że tęskniłem za nic.
znalazłeś odpowiedź? –
Tak, zaktualizowałem moje odkrycie jako zaakceptowaną odpowiedź, proszę przejść przez to. –