Nach der Forschung für 1 ganzen Tag erreichte ich unten Schlussfolgerung.
Android ermöglicht es Ihnen nicht, standardmäßige Softkey-Eingaben von Hintergrunddiensten abzufangen. Die einzige Möglichkeit, diese Ereignisse abzufangen, sind benutzerdefinierte Tastaturen.
Ich habe es wie folgt zusammengefasst:
In Android Key Logging für Tastaturereignisse nicht in Hintergrunddienste unterstützt wird. Einige der Links sind wie folgt:
Punkt 1: Google Android Developer
Als Soft-Input-Verfahren mehr und einfallsreiche Art und Weise der Texteingabe verwenden kann, gibt es keine Garantie, dass jeder Tastendruck auf einer Soft-Tastatur wird ein Schlüsselereignis generieren: dies liegt im Ermessen des IME, und es wird davon abgeraten, solche Ereignisse zu senden. Sie sollten sich niemals darauf verlassen, KeyEvents für einen beliebigen Schlüssel einer Soft-Input-Methode zu empfangen. Insbesondere sendet die Standardsoftwaretastatur niemals ein Schlüsselereignis an eine Anwendung, die auf Jelly Bean oder später abzielt, und sendet nur Ereignisse für einige Druckvorgänge der Lösch- und Rückgabetasten an Anwendungen, die auf Ice Cream Sandwich oder früher zielen.
http://developer.android.com/reference/android/view/KeyEvent.html
Android Jelly Bean ist: 4.1 bis 4.3.1 Android IceCream Sandwich: 4.0
Betätigung der einzelnen Tasten auf Soft-Input-Methoden sind nicht erforderlich, um die Methoden in diesem Hörer auslösen, und in der Tat ist entmutigt, dies zu tun. Die standardmäßige Android-Tastatur löst diese für keinen Schlüssel für eine Anwendung aus, die auf Jelly Bean oder später abzielt, und liefert sie nur für einige Tastendrücke an Anwendungen, die auf Ice Cream Sandwich oder früher gerichtet sind.
http://developer.android.com/reference/android/text/method/KeyListener.html
Punkt 2: Stack-Überlauf KeyEvents kann nur durch Aktivitäten behandelt werden, da sie die Schnittstelle zum Benutzer durch Drücken der Tasten sind und nur dann, wenn sie im Vordergrund. Selbst Dienste, die im Hintergrund ausgeführt werden, sollen nicht auf Benutzereingaben reagieren.
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), die für Google arbeitet, bestätigt es auch onKeyDown in a service? (Global Hot Keys)
Point 4: Some Other reference:
Google Android-Entwickler Gruppen: https://groups.google.com/forum/#!topic/android-developers/o--GUWmqXdI
Es nur mit benutzerdefinierte Tasten getan werden kann: get pressed key and throw another key in android
Bitte fügen Sie Ihre Kommentare, wenn Sie denken, dass ich etwas verpasst haben.
haben Sie Ihre Antwort gefunden? –
Ja, ich habe meinen Befund als akzeptierte Antwort aktualisiert. Bitte gehen Sie durch. –