Wklej tekst na emulatorze Androida

316

Czy istnieje prosty sposób na kopiowanie / wklejanie zawartości schowka na komputer EditViewna emulatorze Androida?

(tylko dla ułatwienia rozwoju / testowania)

ankitjaininfo
źródło
2
ponownie Joel Beckham-wyślij SMS: > Zazwyczaj wysyłam tekst, który chcę skopiować jako wiadomość SMS> przez telnet, a następnie kopiuję tekst z wiadomości SMS. Zamiast używać telnetu, możesz użyć Eclipse do symulacji przychodzących SMS-ów w emulatorze: W narzędziach Android Eclipse (wersja 17 może także w starszych wersjach) otwórz perspektywę DDMS. W obszarze „Sterowanie emulatorem” / „Działania telefoniczne” możesz symulować przychodzące wiadomości SMS. Po odebraniu wiadomości przez emulator możesz go skopiować i wkleić w dowolnym miejscu.
k3b
2
Dla każdego, kto teraz patrzy na to pytanie; jest teraz obsługiwany natywnie w Androidzie - upewnij się, że korzystasz z najnowszego Android Studio / Emulatora, jak wspomniano tutaj: stackoverflow.com/a/42678005/207552
bschandramohan
2
Naciśnij długo pole tekstowe i wybierz Wklej
onmyway133

Odpowiedzi:

126

W wersji 25.3.x emulatora Androida i emulatora interfejsu API Google API x86 API Poziom 19 (Android 4.4 - Kitkat) i wyższy, możesz po prostu kopiować i wklejać z pulpitu za pomocą myszy lub klawiatury.

Ta funkcja została ogłoszona wraz z Android Studio 2.3

Kopiuj i wklej za pomocą emulatora Androida

Jamal Eason
źródło
27
Od stycznia 2018 r. W obecnej wersji emulatora występuje znany błąd, który czasami przestaje działać. Aby obejść ten problem, kliknij ikonę „...”, przejdź do Ustawień i włącz i wyłącz ustawienie „Włącz udostępnianie schowka”. ( Źródło )
mhsmith,
@mhsmith Jak to zrobić (zresetować udostępnianie schowka) z wiersza poleceń za pomocą narzędzi wiersza poleceń Androida lub poprzez edycję ~/.android/avd/ .iniplików?
Chloe
@Chloe Ponieważ ten problem dotyczy już działającego emulatora, wątpię, czy którakolwiek z tych rzeczy miałaby znaczenie.
mhsmith,
1
Jak wklejasz na komputerze Mac? Naciśnięcie Cmd wywołuje funkcję multi-touch. Cmd-V nic nie robi.
jcollum
17
@jcollum kliknij lewym przyciskiem myszy i przytrzymaj pole tekstowe, do którego chcesz wkleić, kliknij „Wklej”. cmd + v nie będzie działać, ctrl + v, jak sądzę.
Liam Dawson,
306

W terminalu wpisz adb shell input text 'my string here. With some characters escaped like \$ that'

Zauważ, że alternatywną metodą umieszczania spacji w tekście jest zastąpienie %skażdego spaceznaku.

Rose Perrone
źródło
22
Jeśli korzystasz z komputera Mac, możesz łatwiej wkleić zawartość schowka: adb shell input text "pbpaste"
lowellk
3
skończyło się to dzisiaj i napisałem obejście w pythonie dotyczące problemów ze spacjami. o wiele łatwiej jest teraz zakończyć tworzenie zakładek do przeglądarki zapasów bez konieczności tworzenia kilkunastu kont synchronizacji. github.com/gcb/AdbPaste (napisany podczas oczekiwania na załadowanie emulatora i kilka sesji gier online ...! $% # slow emulator)
gcb
2
Wydaje się, że to nie działa z niektórymi znakami UTF - po próbie wysłania 'ლ\(ಠ益ಠლ\)'mówi tylko „Zabity” lub wydaje się, że się udaje i nic nie jest wpisywane, ani też nie mam nic do wklejenia w emulatorze. Metoda SMS (próbowałem z DDMS) nawet nie działa tutaj, wyświetla się jako „? (????)” :(
Groxx
2
Ja też nie mogę wysyłać ciągów znaków ze spacjami; Muszę użyć% s.
Peter
2
@Peter i Rose, czy istnieje sposób na dodanie nowej linii? adb shell input text "This%sis%stext\nDoes%snot%work%here."drukuje „To jest tekst \ nNie działa tutaj.”.
Firelord,
84

Zazwyczaj wysyłam tekst, który chcę skopiować jako wiadomość SMS, przez telnet, a następnie kopiuję tekst z wiadomości SMS. Oto jak:

Połącz przez telnet:

  • Składnia: telnet localhost <port>
  • Przykład: telnet localhost 5554

(Domyślnym portem jest 5554. Pasek tytułu emulatora pokazuje używany port, dzięki czemu można sprawdzić, czy jest inny).

Wyślij wiadomość:

  • Składnia: sms send <senders phone number> <message>
  • Przykład: sms send 1231231234 This is the message you want to send

(Możesz po prostu uzupełnić numer telefonu nadawcy)

Działa to bardzo dobrze w przypadku linków, ponieważ wiadomość jest automatycznie przekształcana w hiperłącze, które można kliknąć bez konieczności kopiowania / wklejania go do przeglądarki.

Gdy emulator odbierze wiadomość, możesz ją skopiować i wkleić w dowolnym miejscu.

Joel Beckham
źródło
3
nawet nie potrzebujesz telnetu ... możesz wysyłać sms z ddms (ale ddms potrzebuje jednak telnetu). Ale fajny pomysł :)
Tima
@Mur - to świetny pomysł. Dzięki!
Joel Beckham,
1
Dla wszystkich zainteresowanych właśnie utworzyłem skrypt powłoki, aby to zrobić: gist.github.com/2050770
Todd Mazierski
7
Ta odpowiedź to przesada. użyć adb. Zobacz moją odpowiedź.
Rose Perrone
1
Przesadzanie czy nie, ale pozwala wklejać tekst bez zmian znaków specjalnych.
dmitry
28

Po prostu skopiuj z dowolnego miejsca, kliknij i przytrzymaj tekst edycji telefonu emulatora w miejscu, w którym chcesz go przenieść (tak jakbyś nacisnął i przytrzymał, aby wkleić na prawdziwym telefonie), pojawi się opcja WKLEJ, a następnie WKLEJ.

Raymond Wachaga
źródło
3
Dziękuję Ci! Zdecydowanie moja ulubiona odpowiedź. W obecnej wersji emulatora jest to bardzo wygodne. (Obecna emulator posiada ustawienie w kontroli emulatora sekcji „Ustawienia”, która pozwala na dzielenie schowka.)
albert c braun
W ten sposób wklejasz na komputerze Mac, ponieważ domyślnie klawisz polecenia uruchamia gesty dotykowe.
Jim
19

Nie jestem pewien, czy jest to przydatne, ale jeśli potrzebujesz długiego adresu URL z przeglądarki na komputerze, aby otworzyć go w przeglądarce mobilnej, możesz wysłać SMS z tym adresem URL i otworzyć bezpośrednio z aplikacji wiadomości.

wprowadź opis zdjęcia tutaj

TEH EMPRAH
źródło
Możesz nawet skopiować ten tekst. Znalazłem w ten sposób jeden z najprostszych i najtrudniejszych!
Hirbod Behnam
Wystąpił
To jest zdecydowanie przydatne! Bezpośrednio z tego samego interfejsu użytkownika emulatora, bez telnet, bez parametrów. A przypadek użycia adresu URL odpowiada moim potrzebom. Bardzo skuteczne rozwiązanie.
Alberto De Caro
11

Jeśli używasz Android Studio na komputerze Mac, może być konieczne podanie pełnej ścieżki do adbpliku wykonywalnego. Aby znaleźć tę ścieżkę, otwórz:

Android Studio > Tools > Android > SDK Manager

Skopiuj ścieżkę do lokalizacji SDK. Plik adbwykonywalny będzie w platform-toolskatalogu. Dla mnie była to ścieżka:

~/Library/Android/sdk/platform-tools/adb

Teraz możesz uruchomić to polecenie:

~/Library/Android/sdk/platform-tools/adb shell input text 'thetextyouwanttopaste'
Andrzej
źródło
7

Mam już dość tego problemu, więc stworzyłem ten alias, aby go rozwiązać:

alias ap="pbpaste | xargs adb shell input text"

Następnie, gdy otworzysz nowe okno terminala, wpisanie „ap” spowoduje wklejenie wszystkiego, co jest w schowku, do aktywnie wybranego pola tekstowego emulatora.

Ustawiać

Po prostu dodaj to do swojego profilu (dla większości użytkowników, którzy są ~/.bash_profiledla użytkowników zsh, którzy ~/.zshrc), aby alias był dostępny wszędzie. Alternatywnie, jeśli jesteś użytkownikiem bash (domyślnym dla MacOS), możesz uruchomić następujące polecenie w terminalu, aby go skonfigurować:

echo "alias ap='pbpaste | xargs adb shell input text'" >> ~/.bash_profile && source ~/.bash_profile
gMale
źródło
lubalias ap="adb shell input text `pbpaste`"
gderaco
Korzystam z systemu Windows i aliasu, 'alias' is not recognized as an internal or external command, operable program or batch file. co robić
shareef
6

Tylko dla poziomu API> = 24

Skopiuj dowolny tekst z komputera lokalnego, a następnie po prostu uruchom to polecenie

adb shell input keyevent 279

Upewnij się, że w Ustawieniach emulatora Androida Enable Clipboard Sharingopcje są włączone

Rishabh Arya
źródło
5

może trochę trudne, ale możesz wysłać SMS-a do emulatora za pomocą kontrolki emulatora. to nie musisz ponownie wpisywać całego tekstu, jeśli jest dłuższy i możesz skopiować i wkleić go w emulatorze.

inny sposób: połącz się z emulatorem za pomocą „telnet localhost PORT”, a następnie użyj wysyłania zdarzeń sprzętowych, aby wysłać zdarzenie wprowadzania tekstu do emulatora (musi to być UTF-8). spójrz na to

szalony
źródło
5

Możesz to zrobić również bez obejść. Po prostu kliknij i przytrzymaj przez chwilę pole wprowadzania, aż pojawi się powiadomienie o wklejeniu, a następnie kliknij wklej. Otóż ​​to!

nana janashia
źródło
4

W systemie Linux spowoduje to wklejenie tekstu bezpośrednio ze schowka

adb shell input text "'$(xclip -selection c -o)'"

Również bardzo przydatne jest na przykład utworzenie globalnego skrótu klawiaturowego za pomocą tego polecenia Ctrl+Shift+Super+V

Andrey Izman
źródło
3

Wykonano tę aplikację Windows, która pozwala użytkownikom kopiować wklej do emulatorów Androida lub podłączonych urządzeń z interfejsu wizualnego. https://github.com/Florin-Birgu/Android-Copy-Paste

wprowadź opis zdjęcia tutaj

Florin Birgu
źródło
Dzięki za udostępnienie!
Freshchris,
2

Czy spojrzałeś na C2DM? chrome2phone i fox2phone mogą wysyłać linki i tekst ze schowka oraz automatycznie kopiować je na telefon. Spróbuj także użyć powłoki adb. Istnieje polecenie serwisowe (/ system / bin / service), które może korzystać z usług (schowek zgłoszeń serwisowych ...). Kody transakcji to 1, 2 i 3 odpowiednio dla getClipboardText, setClipboardText i hasClipboardText.

jęknął
źródło
1

Używając emulatora Visual Studio, oto moja metoda.

First Mound wirtualna karta SD:

  1. Użyj dodatkowych narzędzi (mała >> ikona) dla emulatora i przejdź do zakładki Karta SD.
  2. Wybierz folder na komputerze, aby zsynchronizować go z wirtualną kartą SD.
  3. Wyciągnij z karty SD, która utworzy strukturę folderów w wybranym folderze.

Skonfiguruj plik tekstowy do przesyłania tekstu:

  1. Użyj Google Play Store, aby zainstalować wybrany edytor tekstu
  2. Utwórz plik tekstowy zawierający tekst na swoim komputerze w katalogu pobierania utworzonego wcześniej katalogu wirtualnej karty SD.

Ilekroć muszę wysłać tekst do schowka.

  1. Edytuj plik tekstowy utworzony powyżej.
  2. Przejdź do dodatkowych narzędzi (mała >> ikona) i wybierz opcję Push To SD Card.
  3. Otwórz plik tekstowy w zainstalowanym edytorze tekstu i skopiuj tekst do schowka. (Przytrzymaj przycisk myszy, gdy otworzy się okno dialogowe, wybierz zaznacz wszystko, a następnie kliknij ikonę kopiowania)

Po skonfigurowaniu dość łatwo to powtórzyć. Ta sama metoda byłaby stosowana w przypadku innych emulatorów, dlatego może być konieczne użycie innej metody w celu wypchnięcia pliku tekstowego do emulatora.

Alexander Higgins
źródło
Ponadto edytor tekstów, z którego korzystam, powiadamia mnie o zmianie treści i pyta, czy chcę ją ponownie załadować.
Alexander Higgins
1

(konwersja komentarza do odpowiedzi)

tylko rozwiązanie w systemie Windows: https://github.com/gcb/AdbPaste

napisałem to w ciągu kilku godzin, aby obejść ten problem. Wróciłem w 100% do Linuksa, więc dołącz do niego jako współpracownik lub opiekun!

gcb
źródło
Dzięki za to. Uwaga dla innych: wysyłanie wielu linii jest wolne. Mam do przesłania 3-stronicowy skrypt LUA, a to rozwiązanie zajmuje około 20 minut od źródła pliku. Google naprawdę musi zaspokoić tę potrzebę. Znam aplikację na klawiaturę typu open source, która ma interfejs telnet, który byłby znacznie szybszy, ale włączenie / wyłączenie klawiatury staje się dodatkowym krokiem.
RoundSparrow hilltx
1
Aby rozwiązać problem prędkości wspomniany w moim ostatnim komentarzu: stwierdziłem, że znacznie szybciej jest po prostu zainstalować na urządzeniu niewielką aplikację pomocniczą, która może pobierać zawartość schowka z polecenia rozgłaszania adb. To wypełnia schowek zamiast bezpośredniego wprowadzania, jak to robi AdbPaste - ale udało mi się go ulepszyć, aby odczytać plik tekstowy, a dla mojego 3-stronicowego skryptu LUA przejście od polecenia adb do uruchomienia w Androidzie zajmuje tylko 1 lub 2 sekundy pole tekstowe. Aplikacja nazywa się Clipper i jest przystosowana
RoundSparrow hilltx
1

Polecenie zapisu: urządzenia adb (wyświetli listę urządzeń aktualnie podłączonych) Wybierz pole tekstowe, w którym chcesz pisać tekst. Napisz polecenie: tekst wejściowy powłoki adb „Yourtext” (upewnij się, że tylko jedno urządzenie jest podłączone, aby uruchomić to polecenie) Gotowe!

Arpan24x7
źródło
0

Przybyłem tutaj, szukając rozwiązania tego samego problemu, i ostatecznie napisałem aplikację na Androida, aby rozwiązać ten problem. Możesz go pobrać ze strony http://www.box.net/shared/6203bn441bfltkimajmk . Wystarczy podać adres URL za pomocą menu Preferencje, aby wskazać miejsce, w którym można łatwo zmienić odpowiedź internetową. Pierwszy wiersz odpowiedzi internetowej zostanie dla Ciebie skopiowany do schowka emulatora. Więcej informacji można znaleźć na stronie http://agilesc.barryku.com/?p=255 .

barryku
źródło
1
Nie powinieneś tutaj zamieszczać kodu wykonywalnego. Kod źródłowy byłby znacznie lepszy.
lowellk
0

W systemach Mac i Linux wypróbuj tę funkcję w pliku aliases_bash (znajduje się w pliku / etc / aliases_bash dla komputerów Mac, pamiętaj o użyciu sudo vim / etc / aliases_bash)

function adbtx {
  userinput="$(sed 's/ /%s/g' <<< $1)"
  adb shell input text "${userinput}";
}
export -f adbtx

Następnie w wierszu polecenia wprowadź:

adbtx 'Your text to emulator input'

Twój tekst na wejściu emulatora ” zostanie wpisany w polu tekstowym emulatora.

Uznanie dla Eliota za ciąg zamiany na sed.

Piekarz
źródło