Wenn Sie die in ADB-Shell-Eingabeereignisse beschriebenen grundlegenden Tastenbelegungen kennen, erhalte ich die Emulation von Text Eingabe und spezielle Tasten funktionieren recht gut. Aber was ist mit Unicode-Zeichen? Zum Beispiel möchte ich Umlaute aus dem deutschen QWERTZ-Tastaturlayout verwenden.
Das bringt mich:
%Vor%So scheint es zu stürzen und
%Vor% druckt xFC auf dem Eingang. Ich habe versucht, die Ereignisse mit getevent
, aber ich habe kein direktes Mapping gefunden, habe ich auch in die Keymapping-Datei /system/usr/keylayout/Qwerty.kl
Ich glaube, die einzige Möglichkeit ist über die Zwischenablage, aber wie in der Frage Einfügen von Text in die Android-Emulator-Zwischenablage mithilfe der adb-Shell scheint nicht bekannt zu sein, wie man es für Android Ice Cream Sandwich oder später verwendet.
input
wird nicht funktionieren, da es nur einzelne Key-Ereignisse über die virtuelle Tastatur senden kann (überprüfen Sie den Quellcode, wenn Sie nicht wissen, was ich meine).
Ich denke, der einzige Weg ist die Verwendung von Instrumentation . Ich denke, du kannst einen Test für deine Aktivität erstellen und dann etwas wie folgt machen:
%Vor%Dies wird die geänderten Schlüssel senden: àèìòù
Ich habe eine virtuelle Tastatur geschrieben, die Broadcast Intent akzeptiert, so dass Unicode-Zeichen über adb an die editText-Ansicht gesendet werden können.
für z.B. adb-Shell bin Broadcast -a ADB_INPUT_TEXT --es msg "你 好嗎! Hallo!"
Hier ist das Github-Projekt: Ссылка
Ich hoffe, dieses kleine Projekt würde helfen.
Eigentlich ist ADBKeyBoard sehr gut! Danke für Eric Tang!
Einige nützliche Erweiterungen für den komfortablen Gebrauch:
Wechseln Sie von adb zu ADBKeyBoard:
%Vor%Überprüfen Sie Ihre verfügbaren virtuellen Tastaturen:
%Vor%Verwenden Sie einfache Anführungszeichen Zeichen - nicht doppelt wie im obigen Beispiel - wenn Ihre Shell "!" (Erklärungszeichen)
%Vor%Zurück zur ursprünglichen virtuellen Tastatur: (swype in meinem Fall ...)
%Vor%Verwenden Sie adb über WLAN, um Ihr Leben zu vereinfachen ...:)