Incolla il testo sull'emulatore Android


316

Esiste un modo semplice per copiare / incollare il contenuto degli appunti (desktop) EditViewsu Emulatore Android?

(solo per facilitare lo sviluppo / test)


2
re Joel Beckham-invia SMS: > Di solito invio il testo che voglio copiare come messaggio sms> tramite telnet e quindi copio il testo dal messaggio sms. Invece di usare telnet puoi usare eclipse per simulare un sms in arrivo nell'emulatore: negli strumenti android di eclipse (la versione 17 forse anche nelle versioni precedenti) apri la prospettiva DDMS. In "Controllo emulatore" / "Azioni di telefonia" puoi simulare un sms in arrivo> Una volta che l'emulatore riceve il messaggio, puoi copiarlo e incollarlo> dove preferisci.
k3b,

2
Per chiunque stia guardando questa domanda ora; è supportato nativamente in Android ora - basta assicurarsi che si sta utilizzando l'ultima Studio Android / emulatore come accennato qui: stackoverflow.com/a/42678005/207552
bschandramohan

3
Premi a lungo sul campo di testo e seleziona Incolla
onmyway133

Risposte:


126

Con la v25.3.x dell'emulatore Android e le immagini di sistema dell'emulatore API Google x86 API Level 19 (Android 4.4 - Kitkat) e versioni successive, puoi semplicemente copiare e incollare dal desktop con il mouse o la tastiera.

Questa funzione è stata annunciata con Android Studio 2.3

Copia e incolla con l'emulatore Android


27
A partire da gennaio 2018 esiste un bug noto nell'attuale versione dell'emulatore in cui a volte smette di funzionare. Per ovviare al problema, fai clic sull'icona "...", vai su Impostazioni e attiva e disattiva l'impostazione "Abilita condivisione appunti". ( Fonte )
mhsmith l'

@mhsmith Come si fa (ripristinare la condivisione degli appunti) dalla riga di comando con gli strumenti della riga di comando di Android o tramite la modifica dei ~/.android/avd/ .inifile?
Chloe,

@Chloe Poiché questo problema riguarda un emulatore già in esecuzione, dubito che una di queste due cose farebbe la differenza.
mhsmith,

1
Come si incolla su un mac? Premendo Cmd viene visualizzato multi-touch. Cmd-V non fa nulla.
jcollum

17
@jcollum fai clic con il pulsante sinistro del mouse e tieni premuto sul campo di testo in cui desideri incollarlo, fai clic su "Incolla". cmd + v non funzionerà, né ctrl + v, immagino.
Liam Dawson,

306

In un terminale, digitare adb shell input text 'my string here. With some characters escaped like \$ that'

Si noti che un metodo alternativo per includere spazi nel testo è sostituire %sogni spacecarattere.


22
Se sei su un Mac, puoi incollare il contenuto degli appunti ancora più facilmente: adb shell input text "pbpaste"
lowellk

3
ho finito per prendere alcune ore oggi e ho scritto una soluzione alternativa in Python per i problemi di spazio. ora è molto più facile terminare i bookmarklet nel browser stock senza dover creare una dozzina di account di sincronizzazione. github.com/gcb/AdbPaste (scritto mentre aspettava il caricamento dell'emulatore e un paio di sessioni di gioco online ...! $% # emulatore lento)
gcb

2
Questo non sembra funzionare con alcuni caratteri UTF - dopo aver provato a inviare 'ლ\(ಠ益ಠლ\)', dice semplicemente "Ucciso" o sembra avere successo e non viene digitato nulla, né ho qualcosa di incollabile nell'emulatore. Il metodo SMS (ho provato da DDMS) non sembra nemmeno funzionare qui, viene visualizzato come "? (????)" :(
Groxx

2
Anch'io non posso inviare stringhe con spazi; Devo usare% s.
Peter,

2
@Peter e Rose, c'è un modo per aggiungere una nuova linea? adb shell input text "This%sis%stext\nDoes%snot%work%here."stampa "Questo è testo \ nNon funziona qui.".
Firelord,

84

Di solito invio il testo che voglio copiare come messaggio sms tramite telnet e quindi copio il testo dal messaggio sms. Ecco come:

Connetti tramite telnet:

  • Sintassi: telnet localhost <port>
  • Esempio: telnet localhost 5554

(5554 è la porta predefinita. La barra del titolo dell'emulatore mostra la porta utilizzata, quindi puoi vedere se è diversa).

Invia messaggio:

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

(Puoi semplicemente inventare il numero di telefono dei mittenti)

Funziona davvero bene per i collegamenti poiché il messaggio viene automaticamente convertito in un collegamento ipertestuale su cui è possibile fare clic senza doverlo copiare / incollare nel browser.

Una volta che l'emulatore riceve il messaggio, puoi copiarlo e incollarlo dove preferisci.


3
non hai nemmeno bisogno di telnet ... puoi inviare sms da ddms (ma comunque ddms ha bisogno di telnet). Ma bella idea :)
Tima

@Mur - è un'ottima idea. Grazie!
Joel Beckham,

1
Per chiunque sia interessato, ho
Todd Mazierski

7
Questa risposta è eccessiva. usare adb. Vedi la mia risposta
Rose Perrone,

1
Overkill o no, ma consente di incollare il testo così com'è, senza la necessità di sfuggire a caratteri speciali.
Dmitry,

28

Basta copiare ovunque, fare clic e tenere premuto il testo di modifica del telefono dell'emulatore nel punto in cui si desidera che il testo vada (tipo di come si preme e si tiene premuto per incollare su un telefono reale), apparirà l'opzione PASTE, quindi PASTE.


3
Grazie! Sicuramente la mia risposta preferita. Con l'attuale versione dell'emulatore, questo è molto conveniente. (L'emulatore corrente ha un'impostazione nei controlli dell'emulatore in "Impostazioni" che consente la condivisione degli appunti.)
albert c braun

Ecco come incollare su Mac, poiché il tasto comando avvia i gesti tattili per impostazione predefinita.
Jim

19

Non sono sicuro che sia utile, ma, se hai bisogno di un URL lungo dal browser desktop per essere aperto nel browser mobile, puoi inviare SMS con quell'URL e aprirlo direttamente dall'app dei messaggi.

inserisci qui la descrizione dell'immagine


Puoi persino copiare quel testo. Ho trovato in questo modo uno dei più semplici e dei più difficili!
Hirbod Behnam,

Ho ricevuto questo errore: "Impossibile inviare il messaggio, la radio è spenta" (su MacBook)
Atetc

Questo è sicuramente utile! Direttamente dalla stessa UI dell'emulatore, nessun telnet, nessun parametro. E il caso d'uso dell'URL soddisfa solo le mie esigenze. Una soluzione molto efficace.
Alberto De Caro,

11

Se si utilizza Android Studio su un Mac, potrebbe essere necessario fornire il percorso completo adbdell'eseguibile. Per trovare questo percorso, apri:

Android Studio > Tools > Android > SDK Manager

Copia il percorso nella posizione dell'SDK. L' adbeseguibile sarà all'interno di una platform-toolsdirectory. Per me, questo era il percorso:

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

Ora puoi eseguire questo comando:

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

7

Mi sono stancato di questo problema, quindi ho appena creato questo alias per gestirlo:

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

Quindi quando apri una nuova finestra del terminale, digitando "ap" incollerai tutto ciò che è negli Appunti nel campo di testo attivo dell'emulatore.

Impostare

Aggiungilo semplicemente al tuo profilo (per la maggior parte degli utenti che è ~/.bash_profileper gli utenti zsh ~/.zshrc) per rendere l'alias disponibile ovunque. In alternativa, se sei un utente bash (predefinito per MacOS), puoi eseguire il seguente comando nel terminale per configurarlo per te:

echo "alias ap='pbpaste | xargs adb shell input text'" >> ~/.bash_profile && source ~/.bash_profile

oppurealias ap="adb shell input text `pbpaste`"
gderaco,

sto usando windows e alias 'alias' is not recognized as an internal or external command, operable program or batch file. cosa fare
shareef

6

Solo per livello API> = 24

Copia qualsiasi testo dal tuo computer locale e quindi esegui semplicemente questo comando

adb shell input keyevent 279

Assicurati che nelle Impostazioni dell'emulatore Android le Enable Clipboard Sharingopzioni siano abilitate


5

forse un po 'complicato, ma potresti inviare un sms all'emulatore usando il controllo dell'emulatore. quindi non è necessario riscrivere tutto il testo se è più lungo e può copiarlo e incollarlo nell'emulatore.

un altro modo: connettersi all'emulatore tramite "telnet localhost PORT" e quindi utilizzare l'invio di eventi hardware per inviare un evento di input di testo all'emulatore (deve essere UTF-8). guarda questo


5

Puoi farlo anche senza soluzioni alternative. Basta fare clic e tenere premuto per un po 'nel campo di input fino a quando appare la notifica incolla e quindi fare clic su Incolla. Questo è tutto!


4

Su Linux questo incollerà il testo direttamente dagli appunti

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

Inoltre è molto utile creare una scorciatoia da tastiera globale con questo comando, ad esempio Ctrl+Shift+Super+V



2

Hai visto C2DM? chrome2phone e fox2phone possono inviare collegamenti e testo negli Appunti e copiarlo automaticamente sul telefono. Inoltre, prova a utilizzare la shell adb. C'è un comando di servizio (/ system / bin / service) che può usare i servizi (appunti di chiamata di servizio ...). I codici di transazione sono 1, 2 e 3, rispettivamente per getClipboardText, setClipboardText e hasClipboardText.


1

Utilizzando Visual Studio Emulator, ecco il mio metodo.

Primo Mound una scheda SD virtuale:

  1. Utilizza gli strumenti aggiuntivi (piccola icona >>) per l'emulatore e vai alla scheda Scheda SD.
  2. Seleziona una cartella sul tuo computer per la sincronizzazione con la scheda SD virtuale.
  3. Estrai dalla scheda SD, che creerà una struttura di cartelle nella cartella selezionata.

Imposta un file di testo per trasferire il testo:

  1. Utilizza Google Play Store per installare un editor di testo a tua scelta
  2. Creare un file di testo contenente il testo sul computer nella directory di download della directory della scheda SD virtuale creata in precedenza.

Ogni volta che devo inviare del testo agli appunti.

  1. Modifica il file di testo creato sopra.
  2. Vai su Strumenti aggiuntivi (piccola icona >>) e scegli Push To SD Card.
  3. Apri il file di testo nell'editor di testo che ho installato e copia il testo negli appunti. (Tenere premuto il mouse quando si apre la finestra di dialogo, scegliere selezionare tutto e quindi fare clic sull'icona di copia)

Una volta installato, è abbastanza facile da ripetere. Lo stesso metodo sarebbe applicabile ad altri emulatori in quanto potrebbe essere necessario utilizzare un metodo diverso per inviare il file di testo all'emulatore.


Inoltre, l'editor di testo che utilizzo mi avvisa che il contenuto è cambiato e mi chiede se voglio ricaricarlo.
Alexander Higgins,

1

(conversione della discussione di commento in risposta)

unica soluzione su Windows: https://github.com/gcb/AdbPaste

l'ho scritto in un paio d'ore per aggirare questo problema. Ora sono tornato su Linux al 100%, quindi sentiti libero di unirti come collaboratore o manutentore!


Grazie per questo. Nota per gli altri: è lento per l'invio di più righe. Ho uno script LUA di 3 pagine da caricare e questa soluzione richiede circa 20 minuti da una fonte di file. Google deve davvero rispondere a questa esigenza. Conosco un'app per tastiera open source che ha un'interfaccia telnet che sarebbe molto più veloce, ma cambiare la tastiera in / out diventa un passo in più.
RoundSparrow hilltx,

1
Per risolvere il problema di velocità menzionato nel mio ultimo commento: ho scoperto che è molto più veloce inserire una piccola app di supporto sul dispositivo che può prendere il contenuto degli appunti dal comando di trasmissione adb. Questo popola gli appunti invece dell'input diretto come fa AdbPaste - ma sono stato in grado di migliorarlo per leggere un file di testo e per il mio script LUA di 3 pagine ora ci vogliono solo 1 o 2 secondi per passare dal comando adb ad averlo in Android casella di testo. L'app si chiama clipper e migliorata per leggere il file di testo è qui: github.com/RoundSparrow/clipper
RoundSparrow hilltx

1

Comando di scrittura: dispositivi adb (elencherà il dispositivo attualmente connesso) Selezionare Casella di testo in cui si desidera scrivere il testo. Scrivi comando: adb shell input text "Yourtext" (assicurati che solo un dispositivo sia collegato per eseguire questo comando) Fatto!


0

Sono venuto qui alla ricerca di una soluzione allo stesso problema e ho finito per scrivere un'applicazione Android per risolvere questo problema. Puoi scaricarlo da http://www.box.net/shared/6203bn441bfltkimajmk . Basta dare un URL tramite il menu Preferenze per indicare un luogo in cui è possibile modificare facilmente la risposta Web. La prima riga della risposta Web verrà copiata negli appunti dell'emulatore per te. Maggiori dettagli sono disponibili all'indirizzo http://agilesc.barryku.com/?p=255 .


1
Non è necessario pubblicare codice eseguibile qui. Il codice sorgente sarebbe molto meglio.
lowellk

0

Per Mac e Linux prova questa funzione nel tuo file aliases_bash (che si trova in / etc / aliases_bash per gente Mac, assicurati di usare sudo vim / etc / aliases_bash)

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

Quindi nella riga di comando inserisci:

adbtx 'Your text to emulator input'

" Il testo immesso nell'emulatore " verrà inserito nel campo di testo dell'emulatore.

Complimenti a Eliot per la sua stringa di sostituzione per sed.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.