2016-05-30 9 views
1

Ich suche nach den Codezeilen in AOSP, wo KeyEvent.KEYCODE_HOME erzeugt wird. Ich bin ziemlich sicher, dass es irgendwo in der Klasse PhoneStatusBar im SystemUI-Paket sein muss. Ich habe den mHomeActionListener in PhoneStatusBar gefunden, der von einem OnTouchListener aus der NavigationBarView ausgelöst wird. Aber es wird kein KeyEvent.KEYCODE_HOME erzeugt. Ich konnte diesen Code noch nicht finden. Alle Hinweise werden sehr geschätzt.Android AOSP abfangen KeyEvent.KEYCODE_HOME

Mit freundlichen Grüßen

+0

Bitte kurz machen – Moumit

+0

Wo ist KeyEvent.KEYCODE_HOME in AOSP erstellt? :-) – Hannes

+0

Sie scheinen mehr in den Bereichen zu suchen, in denen das Ereignis konsumiert wird. Suchen Sie nach den Eingabesystemen, um die Quelle zu finden. Etwas wird wahrscheinlich über ein/dev/Eingabegerät gehen, um herauszufinden, ob das eine generische Schlüsselidentität ist, die zu diesem Zweck später zugeordnet wird, oder ob es bereits ein Android-Schlüsselcode ist. Sie können auch die Quelle der Tools zum Eingeben simulierter Ereignisse vergleichen und herausfinden, ob Sie daraus Hinweise ableiten können. –

Antwort

2

Vielen Dank für Ihre Hinweise.

Ich habe endlich herausgefunden, wie die KEYCODE_HOME produziert und verbraucht wird. Meine Anforderung war, die HOME-Taste bei einer konfigurierbaren Flagge zu deaktivieren. Die Plattform ist ein eigenes Embedded-Gerät mit einem angepassten AOSP.

Die Schaltfläche HOME ist im Paket SystemUI mit Ansicht in NavigationBarView und OnClickListener in PhoneStatusBar definiert. Die KeyEvent.KEYCODE_HOME wird im InputDispatcher.cpp (InputFlinger-Paket) produziert und über interceptKeyBeforeQueueing() an PhoneWindowManager.WindowManagerPolicy übergeben. Die PhoneWindowManager verbraucht das Schlüsselereignis und startet die HOME-Anwendung (en).