Rekatkan teks pada Android Emulator

316

Apakah ada cara mudah untuk menyalin / menempel konten clipboard ke EditViewAndroid Emulator?

(hanya demi memudahkan pengembangan / tes)

ankitjaininfo
sumber
2
re Joel Beckham-kirim SMS: > Saya biasanya mengirim teks yang ingin saya salin sebagai pesan sms> melalui telnet dan kemudian menyalin teks dari pesan sms. Alih-alih menggunakan telnet, Anda dapat menggunakan eclipse untuk mensimulasikan sms yang masuk di emulator: Di alat android eclipse (versi 17 mungkin juga dalam versi yang lebih lama) buka Perspektif DDMS. Di bawah "Kontrol emulator" / "Tindakan Telephony" Anda dapat mensimulasikan sms yang masuk> Setelah emulator menerima pesan, Anda dapat menyalinnya dan menempelkannya> di mana pun Anda suka.
k3b
2
Untuk siapa pun yang melihat pertanyaan ini sekarang; itu didukung secara native di Android sekarang - pastikan Anda menggunakan Android Studio / Emulator terbaru seperti yang disebutkan di sini: stackoverflow.com/a/42678005/207552
bschandramohan
3
Tekan lama pada bidang teks, dan pilih Tempel
onmyway133

Jawaban:

126

Dengan v25.3.x dari Android Emulator & x86 Google API Emulator sistem gambar API Level 19 (Android 4.4 - Kitkat) dan lebih tinggi, Anda cukup menyalin dan menempel dari desktop Anda dengan mouse atau keyboard.

Fitur ini diumumkan dengan Android Studio 2.3

Salin dan Tempel dengan Android Emulator

Jamal Eason
sumber
27
Pada Januari 2018 ada bug yang dikenal dalam versi emulator saat ini di mana ini kadang-kadang berhenti berfungsi. Sebagai solusinya, klik ikon "...", buka Pengaturan, dan matikan pengaturan "Aktifkan berbagi papan tulis". ( Sumber )
mhsmith
@mhsmith Bagaimana Anda melakukannya (mengatur ulang clipboard berbagi) dari baris perintah dengan alat baris perintah Android atau melalui mengedit ~/.android/avd/ .inifile?
Chloe
@ Chloe Karena masalah ini berkaitan dengan emulator yang sudah berjalan, saya ragu kedua hal itu akan membuat perbedaan.
mhsmith
1
Bagaimana cara Anda menempel di mac? Menekan Cmd menampilkan multi-touch. Cmd-V tidak melakukan apa pun.
jcollum
17
@jcollum klik kiri dan tahan pada bidang teks yang ingin Anda tempel, klik 'Tempel'. cmd + v tidak akan bekerja, tidak akan ctrl + v, saya kira.
Liam Dawson
306

Di terminal, ketik adb shell input text 'my string here. With some characters escaped like \$ that'

Perhatikan bahwa metode alternatif untuk memasukkan spasi dalam teks adalah menggantikan %ssetiap spacekarakter.

Rose Perrone
sumber
22
Jika Anda menggunakan Mac, Anda dapat menempelkan konten clipboard dengan lebih mudah: adb shell input text "pbpaste"
lowellk
3
akhirnya mengambil beberapa jam hari ini dan menulis solusi dengan python untuk masalah ruang. jauh lebih mudah untuk mengakhiri bookmarklet ke browser stok sekarang tanpa harus membuat selusin akun sinkronisasi. github.com/gcb/AdbPaste (ditulis sambil menunggu emulator memuat dan beberapa sesi permainan online ...! $% # slow emulator)
gcb
2
Ini tampaknya tidak berfungsi dengan beberapa karakter UTF - setelah mencoba mengirim 'ლ\(ಠ益ಠლ\)', ia hanya mengatakan 'Dibunuh' atau tampaknya berhasil dan tidak ada yang diketik, juga tidak ada yang bisa saya tempelkan di emulator. Metode SMS (saya coba dari DDMS) bahkan tidak berfungsi di sini, ini ditampilkan sebagai "? (????)" :(
Groxx
2
Saya juga tidak bisa mengirim string dengan spasi; Saya harus menggunakan% s.
Peter
2
@ Peter dan Rose, apakah ada cara untuk menambahkan baris baru? adb shell input text "This%sis%stext\nDoes%snot%work%here."cetakan "Ini adalah teks \ nTidak berfungsi di sini."
Firelord
84

Saya biasanya mengirim teks yang ingin saya salin sebagai pesan sms melalui telnet dan kemudian menyalin teks dari pesan sms. Begini caranya:

Terhubung melalui telnet:

  • Sintaksis: telnet localhost <port>
  • Contoh: telnet localhost 5554

(5554 adalah port default. Bilah judul emulator menunjukkan port yang sedang digunakan, sehingga Anda dapat melihat apakah itu berbeda).

Mengirim pesan:

  • Sintaksis: sms send <senders phone number> <message>
  • Contoh: sms send 1231231234 This is the message you want to send

(Anda dapat membuat nomor telepon pengirim)

Ini berfungsi dengan sangat baik untuk tautan karena pesan secara otomatis dikonversi menjadi hyperlink yang dapat Anda klik tanpa harus menyalin / menempelkannya ke browser.

Setelah emulator menerima pesan, Anda dapat menyalinnya dan menempelkannya di mana pun Anda suka.

Joel Beckham
sumber
3
Anda bahkan tidak memerlukan telnet ... Anda dapat mengirim sms dari ddms (tetapi ddms membutuhkan telnet). Tapi ide yang bagus :)
Tima
@ Ibu - itu ide bagus. Terima kasih!
Joel Beckham
1
Bagi siapa pun yang tertarik, cukup buat skrip shell untuk melakukan ini: gist.github.com/2050770
Todd Mazierski
7
Jawaban ini berlebihan. gunakan adb. Lihat jawaban saya.
Rose Perrone
1
Berlebihan atau tidak, tetapi memungkinkan menempelkan teks apa adanya, tanpa perlu melarikan diri karakter khusus.
dmitry
28

Cukup salin dari mana saja, klik dan tahan pada teks edit telepon emulator di mana Anda ingin teks pergi (seperti Anda akan menekan dan menahan untuk menempel pada telepon yang sebenarnya), opsi PASTE akan muncul, kemudian PASTE.

Raymond Wachaga
sumber
3
Terima kasih! Jelas jawaban favorit saya. Dengan versi emulator saat ini, ini sangat nyaman. (Emulator saat ini memiliki pengaturan dalam kontrol emulator di bawah "Pengaturan" yang memungkinkan untuk berbagi clipboard.)
albert c braun
Ini adalah cara menempel di Mac, karena tombol perintah memulai gerakan sentuh secara default.
Jim
19

Tidak yakin apakah itu berguna, tetapi, jika Anda memerlukan URL panjang dari browser desktop untuk dibuka di browser seluler, Anda dapat mengirim SMS dengan URL itu dan membuka langsung dari aplikasi pesan.

masukkan deskripsi gambar di sini

TEH EMPRAH
sumber
Anda bahkan dapat menyalin teks itu. Saya menemukan cara ini salah satu yang paling sederhana dan paling sulit!
Hirbod Behnam
Saya mendapat kesalahan ini: "Tidak dapat mengirim pesan, radio mati" (di MacBook)
Atetc
Itu sangat berguna! Direcly dari UI emulator yang sama, tanpa telnet, tanpa parameter. Dan case penggunaan URL hanya memenuhi kebutuhan saya. Solusi yang sangat efektif.
Alberto De Caro
11

Jika Anda menggunakan Android Studio pada Mac, Anda mungkin perlu memberikan path lengkap ke adbfile executable. Untuk menemukan jalur ini, buka:

Android Studio > Tools > Android > SDK Manager

Salin jalur ke lokasi SDK. Yang adbdapat dieksekusi akan berada dalam platform-toolsdirektori. Bagi saya, ini jalannya:

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

Sekarang Anda dapat menjalankan perintah ini:

~/Library/Android/sdk/platform-tools/adb shell input text 'thetextyouwanttopaste'
Andrew
sumber
7

Saya bosan dengan masalah ini jadi saya hanya membuat alias ini untuk menanganinya:

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

Kemudian ketika Anda membuka jendela terminal baru, mengetik "ap" akan menempelkan apa pun yang ada di clipboard Anda ke dalam bidang teks yang dipilih secara aktif emulator.

Mempersiapkan

Cukup tambahkan ini ke profil Anda (untuk sebagian besar pengguna yang ~/.bash_profileuntuk pengguna zsh ~/.zshrc) untuk membuat alias tersedia di mana-mana. Atau, jika Anda adalah pengguna bash (default untuk MacOS), maka Anda dapat menjalankan perintah berikut di terminal untuk mengaturnya untuk Anda:

echo "alias ap='pbpaste | xargs adb shell input text'" >> ~/.bash_profile && source ~/.bash_profile
gMale
sumber
ataualias ap="adb shell input text `pbpaste`"
gderaco
Saya menggunakan windows dan alias 'alias' is not recognized as an internal or external command, operable program or batch file. apa yang harus dilakukan
shareef
6

Hanya Untuk tingkat API> = 24

Salin teks apa pun dari mesin lokal Anda dan kemudian jalankan perintah ini

adb shell input keyevent 279

Pastikan Dalam Pengaturan Android Emulator Enable Clipboard Sharingopsi diaktifkan

Rishabh Arya
sumber
5

mungkin sedikit rumit, tetapi Anda bisa mengirim sms ke emulator dengan menggunakan kontrol emulator. maka Anda tidak perlu mengetik ulang semua teks jika lebih panjang dan dapat menyalin-menempelnya di emulator.

cara lain: terhubung ke emulator melalui "telnet localhost PORT" dan kemudian gunakan pengiriman acara perangkat keras untuk mengirim acara input teks ke emulator (perlu UTF-8). lihat ini

gila
sumber
5

Anda dapat melakukan ini tanpa penyelesaian juga. Cukup klik dan tahan sebentar di bidang input hingga pemberitahuan tempel muncul dan kemudian klik tempel. Itu dia!

nana janashia
sumber
4

Di Linux ini akan menempelkan teks langsung dari clipboard

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

Juga sangat berguna untuk membuat shortkey keyboard global dengan perintah ini misalnya Ctrl+Shift+Super+V

Andrey Izman
sumber
3

Dibuat aplikasi Windows ini yang memungkinkan pengguna untuk menyalin paste ke emulator Android atau perangkat yang terhubung dari antarmuka visual. https://github.com/Florin-Birgu/Android-Copy-Paste

masukkan deskripsi gambar di sini

Florin Birgu
sumber
Terima kasih telah berbagi!
Freshchris
2

Apakah Anda sudah melihat C2DM? chrome2phone dan fox2phone dapat mengirim tautan dan teks papan klip dan secara otomatis menyalinnya di telepon. Juga, coba gunakan adb shell. Ada perintah layanan (/ sistem / bin / layanan) yang dapat menggunakan layanan (clipboard panggilan layanan ...). Kode transaksi adalah 1, 2, dan 3, untuk getClipboardText, setClipboardText, dan hasClipboardText.

yingted
sumber
1

Menggunakan Visual Studio Emulator, Inilah metode saya.

Mound pertama kartu sd virtual:

  1. Gunakan Alat Tambahan (ikon >> kecil) untuk emulator dan buka tab Kartu SD.
  2. Pilih folder di komputer Anda untuk disinkronkan dengan kartu SD virtual.
  3. Tarik dari kartu SD, yang akan membuat struktur folder pada folder yang dipilih.

Siapkan file teks untuk mentransfer teks:

  1. Gunakan Google Play Store untuk menginstal editor teks pilihan Anda
  2. Buat file teks yang berisi teks Anda di komputer Anda di direktori unduhan direktori kartu virtual sd yang Anda buat sebelumnya.

Setiap kali saya perlu mengirim teks ke papan klip.

  1. Edit file teks yang dibuat di atas.
  2. Buka Alat Tambahan (ikon kecil >>) dan pilih Push To SD Card.
  3. Buka file teks di editor teks yang saya instal dan salin teks ke papan klip. (Tahan mouse ketika dialog terbuka, pilih pilih semua dan kemudian klik ikon salin)

Setelah diatur cukup mudah untuk mengulanginya. Metode yang sama akan berlaku untuk emulator lain oleh Anda mungkin perlu menggunakan metode yang berbeda untuk mendorong file teks Anda ke emulator.

Alexander Higgins
sumber
Juga, editor teks yang saya gunakan memberi tahu saya bahwa konten telah berubah dan bertanya apakah saya ingin memuatnya kembali.
Alexander Higgins
1

(mengkonversi diskusi komentar untuk menjawab)

satu-satunya solusi di windows: https://github.com/gcb/AdbPaste

menulisnya dalam beberapa jam untuk mengatasi masalah ini. Saya sekarang kembali ke linux 100%, jadi silakan bergabung sebagai kontributor atau pengelola!

gcb
sumber
Terima kasih untuk ini. Catatan untuk orang lain: lambat untuk mengirim beberapa baris. Saya memiliki 3 halaman skrip LUA untuk diunggah dan solusi ini membutuhkan waktu 20 menit dari sumber file. Google benar-benar perlu mengatasi kebutuhan ini. Saya tahu aplikasi Keyboard open source yang memiliki antarmuka telnet yang akan jauh lebih cepat, tetapi mengganti keyboard masuk / keluar menjadi langkah ekstra.
RoundSparrow hilltx
1
Untuk mengatasi masalah kecepatan yang disebutkan dalam komentar terakhir saya: Saya menemukan jauh lebih cepat untuk hanya meletakkan aplikasi pembantu kecil di perangkat yang dapat mengambil konten clipboard dari perintah broadcast adb. Ini mengisi clipboard daripada input langsung seperti AdbPaste lakukan - tapi saya bisa meningkatkannya untuk membaca file teks dan untuk skrip LUA 3 halaman saya sekarang hanya membutuhkan 1 atau 2 detik untuk beralih dari perintah adb ke memilikinya di Android kotak teks. Aplikasi ini disebut clipper dan ditingkatkan untuk membaca file teks ada di sini: github.com/RoundSparrow/clipper
RoundSparrow hilltx
1

Perintah tulis: perangkat adb (akan mencantumkan perangkat yang saat ini terhubung) Pilih Textbox tempat Anda ingin menulis teks. Tulis perintah: adb shell input text "Yourtext" (pastikan hanya satu perangkat yang terhubung untuk menjalankan perintah ini) Selesai!

Arpan24x7
sumber
0

Saya datang ke sini mencari solusi untuk masalah yang sama, dan akhirnya menulis aplikasi Android untuk menyelesaikan masalah ini. Anda dapat mengunduhnya di http://www.box.net/shared/6203bn441bfltkimajmk . Cukup berikan URL melalui menu Preferensi untuk menunjuk ke tempat di mana Anda dapat mengubah respons Web dengan mudah. Baris pertama dari respons Web akan disalin ke clipboard emulator Anda untuk Anda. Detail lebih lanjut dapat ditemukan di http://agilesc.barryku.com/?p=255 .

barryku
sumber
1
Anda tidak boleh memposting kode yang dapat dieksekusi di sini. Kode sumber akan jauh lebih baik.
Lowellk
0

Untuk Mac dan Linux, coba fungsi ini di file aliases_bash Anda (terletak di / etc / aliases_bash untuk pengguna Mac, pastikan untuk menggunakan sudo vim / etc / aliases_bash)

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

Kemudian pada baris perintah masukkan:

adbtx 'Your text to emulator input'

' Teks Anda ke input emulator ' akan menjadi input pada bidang teks emulator.

Kudos to Eliot untuk string substitusi untuk sed.

Tukang roti
sumber