Verwenden Sie diese Anwendung, um die Schlüsselcodes von physischen Geräteschaltflächen zu überprüfen/zu debuggen.
Einmal spielte ich mit einer Reihe chinesischer Tablets und probierte verschiedene ROMs an, da sie technisch gesehen dieselbe Hardware (HSG X5A -Varianten) sind.
Ich hatte einige Probleme, die harten Schaltflächen zum Laufen zu bringen, also schrieb ich diese Anwendung, um wichtige Ereignisse zu erkennen und auszudrucken. Es wird Folgendes ausdrucken:
KeyEvents: Die KeyEvents als Android versteht sie (KeyUp, Keydown, Keylongpress, Keymultiple)
Logcat: Alle relevanten Nachrichten in LogCat. Es filtriert basierend auf Schlüsselwörtern, die in Arrays.xml deklariert sind
Kernel: Alle relevanten Nachrichten im Kernel -Protokoll. Es filtriert basierend auf Schlüsselwörtern, die in Arrays.xml deklariert sind. Kernel -Log -Parsing benötigt Root.
Die drei Kontrollkästchen oben steuern, welche Informationen angezeigt werden.
Dies ist ein persönliches Debug -Tool, aber ich hoffe, dass es für eine andere Person von Nutzen sein wird.
Keine Anzeigen.
Notizen
--------------
Während der Anwendung ist die einzigen "harten" Schlüssel, die funktionieren sollten, "zu Hause" und Strom. Alle anderen werden ihre Schlüsselcodes produzieren.
Die SU -Anfrage besteht darin, das Kernel -Protokoll zu lesen, damit ich prüfen kann, ob KeyEvents vom Kernel geworfen werden.
Der Speicherort von Keylayout -Dateien in Android ist/System/usr/keylayout.
Kernel -Protokoll -Parsing braucht Wurzel
Sowohl die Logcat- als auch die Kernel -Protokollüberwachung zeigen nur Zeilen an, die Wörter aus zwei Arrays in Arrays.xml enthalten (dh Sie müssen die App neu kompilieren, um sie im Moment zu ändern).
Derzeit sind die Filter:
Logcat:
| -Hwgpioe-> gpda
| -keycode
| -keycharacter
Kernel:
| -Hwgpioe-> gpda
| -keycode
| -keycharacter
Berechtigungen
--------------
Read_logs: Wird verwendet, um auf das LogCat -Protokoll zuzugreifen.
Write_external_Storage: Wird verwendet, um die exportierten Daten auf die SD -Karte zu schreiben.
Diese Anwendung ist Open Source. Der Code ist hier zu finden