Gibt es eine einfache Möglichkeit, Inhalte der Zwischenablage in den EditView
Android Emulator zu kopieren / einzufügen?
(nur um die Entwicklung / den Test zu vereinfachen)
Gibt es eine einfache Möglichkeit, Inhalte der Zwischenablage in den EditView
Android Emulator zu kopieren / einzufügen?
(nur um die Entwicklung / den Test zu vereinfachen)
Antworten:
Mit v25.3.x des Android Emulators und des x86 Google API Emulator-Systemimages API Level 19 (Android 4.4 - Kitkat) und höher können Sie einfach mit Ihrer Maus oder Tastatur von Ihrem Desktop kopieren und einfügen.
Diese Funktion wurde mit Android Studio 2.3 angekündigt
~/.android/avd/
.ini
Dateien?
Geben Sie in einem Terminal Folgendes ein adb shell input text 'my string here. With some characters escaped like \$ that'
Beachten Sie, dass eine alternative Methode zum Einfügen von Leerzeichen in den Text darin besteht, %s
jedes space
Zeichen zu ersetzen .
adb shell input text "
einfügen : pbpaste"
'ლ\(ಠ益ಠლ\)'
, sie zu senden , wird nur "Getötet" angezeigt oder es scheint erfolgreich zu sein, und es wird nichts eingegeben. Ich habe auch nichts, das im Emulator eingefügt werden kann. Die SMS-Methode (ich habe es mit DDMS versucht) scheint hier nicht einmal zu funktionieren, sie wird als "? (????)"
adb shell input text "This%sis%stext\nDoes%snot%work%here."
druckt "Dies ist Text \ n Funktioniert hier nicht."
Normalerweise sende ich den zu kopierenden Text als SMS-Nachricht über Telnet und kopiere dann den Text aus der SMS-Nachricht. Hier ist wie:
Verbindung über Telnet herstellen:
telnet localhost <port>
telnet localhost 5554
(5554 ist der Standardport. In der Titelleiste des Emulators wird der verwendete Port angezeigt, sodass Sie sehen können, ob er anders ist.)
Nachricht senden:
sms send <senders phone number> <message>
sms send 1231231234 This is the message you want to send
(Sie können einfach die Telefonnummer des Absenders zusammenstellen)
Dies funktioniert sehr gut für Links, da die Nachricht automatisch in einen Hyperlink konvertiert wird, auf den Sie klicken können, ohne sie kopieren / in den Browser einfügen zu müssen.
Sobald der Emulator die Nachricht erhalten hat, können Sie sie kopieren und einfügen, wo immer Sie möchten.
adb
. Siehe meine Antwort.
Kopieren Sie einfach von überall, klicken Sie auf den Bearbeitungstext des Emulator-Telefons und halten Sie ihn gedrückt, wo der Text abgelegt werden soll (ähnlich wie Sie ihn gedrückt halten würden, um ihn auf einem tatsächlichen Telefon einzufügen). Die Option EINFÜGEN wird angezeigt und dann EINFÜGEN.
Sie sind sich nicht sicher, ob dies nützlich ist. Wenn Sie jedoch eine lange URL vom Desktop-Browser zum Öffnen im mobilen Browser benötigen, können Sie SMS mit dieser URL senden und direkt über die Nachrichten-App öffnen.
Wenn Sie Android Studio auf einem Mac verwenden, müssen Sie möglicherweise den vollständigen Pfad zur adb
ausführbaren Datei angeben. Um diesen Pfad zu finden, öffnen Sie:
Android Studio > Tools > Android > SDK Manager
Kopieren Sie den Pfad zum SDK-Speicherort. Die adb
ausführbare Datei befindet sich in einem platform-tools
Verzeichnis. Für mich war dies der Weg:
~/Library/Android/sdk/platform-tools/adb
Jetzt können Sie diesen Befehl ausführen:
~/Library/Android/sdk/platform-tools/adb shell input text 'thetextyouwanttopaste'
Ich habe dieses Problem satt und habe diesen Alias erstellt, um es zu behandeln:
alias ap="pbpaste | xargs adb shell input text"
Wenn Sie dann ein neues Terminalfenster öffnen und "ap" eingeben, wird alles, was sich in Ihrer Zwischenablage befindet, in das aktiv ausgewählte Textfeld des Emulators eingefügt.
Fügen Sie dies einfach Ihrem Profil hinzu (für die meisten Benutzer gilt dies ~/.bash_profile
für zsh-Benutzer ~/.zshrc
), um den Alias überall verfügbar zu machen. Wenn Sie ein Bash-Benutzer sind (die Standardeinstellung für MacOS), können Sie alternativ den folgenden Befehl im Terminal ausführen, um ihn für Sie einzurichten:
echo "alias ap='pbpaste | xargs adb shell input text'" >> ~/.bash_profile && source ~/.bash_profile
alias ap="adb shell input text `pbpaste`"
'alias' is not recognized as an internal or external command, operable program or batch file.
Nur für API-Ebene> = 24
Kopieren Sie den Text von Ihrem lokalen Computer und führen Sie diesen Befehl einfach aus
adb shell input keyevent 279
Stellen Sie sicher, dass in den Android Emulator-Einstellungen die Enable Clipboard Sharing
Optionen aktiviert sind
vielleicht ein bisschen knifflig, aber Sie könnten eine SMS an den Emulator senden, indem Sie das Emulator-Steuerelement verwenden. Dann müssen Sie nicht den gesamten Text erneut eingeben, wenn er länger ist, und können ihn kopieren und in den Emulator einfügen.
Eine andere Möglichkeit: Stellen Sie über "telnet localhost PORT" eine Verbindung zum Emulator her und senden Sie dann mithilfe des Hardware-Ereignis-Sendens ein Texteingabeereignis an den Emulator (muss UTF-8 sein). Schauen Sie sich diese
Sie können dies auch ohne Problemumgehungen tun. Klicken und halten Sie einfach ein wenig im Eingabefeld, bis die Einfügemeldung angezeigt wird, und klicken Sie dann auf Einfügen. Das ist es!
Unter Linux wird Text direkt aus der Zwischenablage eingefügt
adb shell input text "'$(xclip -selection c -o)'"
Es ist auch sehr nützlich, mit diesem Befehl beispielsweise eine globale Tastenkombination zu erstellen Ctrl+Shift+Super+V
Diese Windows-Anwendung wurde erstellt, mit der Benutzer über eine visuelle Oberfläche das Einfügen in Android-Emulatoren oder verbundene Geräte kopieren können. https://github.com/Florin-Birgu/Android-Copy-Paste
Haben Sie sich C2DM angesehen? chrome2phone und fox2phone können Links und Text aus der Zwischenablage senden und automatisch auf das Telefon kopieren. Versuchen Sie auch, die ADB-Shell zu verwenden. Es gibt einen Dienstbefehl (/ system / bin / service), der Dienste verwenden kann (Zwischenablage für Serviceabrufe ...). Die Transaktionscodes sind 1, 2 und 3 für getClipboardText, setClipboardText bzw. hasClipboardText.
Hier ist meine Methode mit Visual Studio Emulator.
First Mound eine virtuelle SD-Karte:
Richten Sie eine Textdatei zum Übertragen von Text ein:
Wann immer ich Text an die Zwischenablage senden muss.
Einmal eingerichtet, ist es ziemlich einfach zu wiederholen. Die gleiche Methode ist auf andere Emulatoren anwendbar, da Sie möglicherweise eine andere Methode verwenden müssen, um Ihre Textdatei an den Emulator zu senden.
(Konvertieren der Kommentardiskussion in eine Antwort)
einzige Lösung unter Windows: https://github.com/gcb/AdbPaste
schrieb es in ein paar Stunden, um dieses Problem zu umgehen. Ich bin jetzt wieder auf 100% Linux, also zögern Sie nicht, als Mitwirkender oder Betreuer mitzumachen!
Ich kam hierher, um nach einer Lösung für das gleiche Problem zu suchen, und schrieb schließlich eine Android-Anwendung, um dieses Problem zu lösen. Sie können es unter http://www.box.net/shared/6203bn441bfltkimajmk herunterladen . Geben Sie einfach eine URL über das Menü "Einstellungen" ein, um auf einen Ort zu verweisen, an dem Sie die Webantwort einfach ändern können. Die erste Zeile der Webantwort wird für Sie in die Zwischenablage Ihres Emulators kopiert. Weitere Informationen finden Sie unter http://agilesc.barryku.com/?p=255 .
Versuchen Sie für Mac und Linux diese Funktion in Ihrer Datei aliases_bash (in / etc / aliases_bash für Mac-Benutzer, stellen Sie sicher, dass Sie sudo vim / etc / aliases_bash verwenden).
function adbtx {
userinput="$(sed 's/ /%s/g' <<< $1)"
adb shell input text "${userinput}";
}
export -f adbtx
Geben Sie dann in der Befehlszeile Folgendes ein:
adbtx 'Your text to emulator input'
' Ihr Text in die Emulator-Eingabe ' wird in das Emulator-Textfeld eingegeben.
Ein großes Lob an Eliot für seine Ersatzzeichenfolge für sed.