¿Hay una manera fácil de copiar / pegar el contenido del portapapeles en EditView
el emulador de Android?
(solo por el bien para facilitar el desarrollo / prueba)
¿Hay una manera fácil de copiar / pegar el contenido del portapapeles en EditView
el emulador de Android?
(solo por el bien para facilitar el desarrollo / prueba)
Respuestas:
Con v25.3.x del Android Emulator y x86 Google API Emulator imágenes del sistema API Level 19 (Android 4.4 - Kitkat) y superior, simplemente puede copiar y pegar desde su escritorio con su mouse o teclado.
Esta característica fue anunciada con Android Studio 2.3
~/.android/avd/
.ini
archivos?
En una terminal, escriba adb shell input text 'my string here. With some characters escaped like \$ that'
Tenga en cuenta que un método alternativo para incluir espacios en el texto es sustituir %s
cada space
carácter.
adb shell input text "
pbpaste"
'ლ\(ಠ益ಠლ\)'
, solo dice 'Asesinado' o parece tener éxito y no se escribe nada, ni tengo nada pegable en el emulador. El método SMS (probé desde DDMS) ni siquiera parece estar funcionando aquí, se muestra como "? (????)" :(
adb shell input text "This%sis%stext\nDoes%snot%work%here."
imprime "Esto es texto \ nNo funciona aquí".
Por lo general, envío el texto que quiero copiar como un mensaje SMS a través de Telnet y luego copio el texto del mensaje SMS. Así es cómo:
Conéctese a través de telnet:
telnet localhost <port>
telnet localhost 5554
(5554 es el puerto predeterminado. La barra de título del emulador muestra el puerto que se está utilizando, para que pueda ver si es diferente).
Enviar mensaje:
sms send <senders phone number> <message>
sms send 1231231234 This is the message you want to send
(Puede inventar el número de teléfono del remitente)
Esto funciona muy bien para los enlaces, ya que el mensaje se convierte automáticamente en un hipervínculo en el que puede hacer clic sin tener que copiarlo / pegarlo en el navegador.
Una vez que el emulador recibe el mensaje, puede copiarlo y pegarlo donde desee.
adb
. Mira mi respuesta.
Simplemente copie desde donde sea, haga clic y mantenga presionado el texto de edición del teléfono del emulador donde desea que vaya el texto (como si presionara y mantenga presionado para pegar en un teléfono real), aparecerá la opción PEGAR, luego PEGAR.
No estoy seguro de si eso es útil, pero si necesita abrir una URL larga del navegador de escritorio en el navegador móvil, puede enviar SMS con esa URL y abrirla directamente desde la aplicación de mensajes.
Si está utilizando Android Studio en una Mac, es posible que deba proporcionar la ruta completa al adb
ejecutable. Para encontrar esta ruta, abra:
Android Studio > Tools > Android > SDK Manager
Copie la ruta a la ubicación del SDK. El adb
ejecutable estará dentro de un platform-tools
directorio. Para mí, este fue el camino:
~/Library/Android/sdk/platform-tools/adb
Ahora puedes ejecutar este comando:
~/Library/Android/sdk/platform-tools/adb shell input text 'thetextyouwanttopaste'
Me cansé de este problema, así que hice este alias para manejarlo:
alias ap="pbpaste | xargs adb shell input text"
Luego, cuando abra una nueva ventana de terminal, al escribir "ap" pegará lo que esté en su portapapeles en el campo de texto seleccionado activamente en el emulador.
Simplemente agregue esto a su perfil (para la mayoría de los usuarios, eso es ~/.bash_profile
para los usuarios de zsh ~/.zshrc
), para que el alias esté disponible en todas partes. Alternativamente, si eres un usuario bash (el predeterminado para MacOS), entonces puedes ejecutar el siguiente comando en la terminal para configurarlo por ti:
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.
qué hacer
Solo para nivel API> = 24
Copie cualquier texto de su máquina local y luego simplemente ejecute este comando
adb shell input keyevent 279
Asegúrese de que en la configuración del emulador de Android las Enable Clipboard Sharing
opciones estén habilitadas
quizás un poco complicado, pero puede enviar un sms al emulador utilizando el control del emulador. entonces no tiene que volver a escribir todo el texto si es más largo y puede copiarlo y pegarlo en el emulador.
otra forma: conéctese al emulador a través de "telnet localhost PORT" y luego use el envío de eventos de hardware para enviar un evento de entrada de texto al emulador (debe ser UTF-8). mira esto
Puede hacer esto sin soluciones también. Simplemente haga clic y mantenga presionado por un momento en el campo de entrada hasta que aparezca la notificación de pegar y luego haga clic en pegar. ¡Eso es!
En Linux, esto pegará el texto directamente desde el portapapeles
adb shell input text "'$(xclip -selection c -o)'"
También es muy útil crear una combinación de teclas global con este comando, por ejemplo Ctrl+Shift+Super+V
Creó esta aplicación de Windows que permite a los usuarios copiar y pegar en emuladores de Android o dispositivos conectados desde una interfaz visual. https://github.com/Florin-Birgu/Android-Copy-Paste
¿Has mirado en C2DM? chrome2phone y fox2phone pueden enviar enlaces y texto del portapapeles y copiarlo automáticamente en el teléfono. Además, intente usar el shell adb. Hay un comando de servicio (/ system / bin / service) que puede usar servicios (portapapeles de llamadas de servicio ...). Los códigos de transacción son 1, 2 y 3, para getClipboardText, setClipboardText y hasClipboardText respectivamente.
Usando Visual Studio Emulator, aquí está mi método.
Primer Montículo de una tarjeta SD virtual:
Configure un archivo de texto para transferir texto:
Cada vez que necesito enviar texto al portapapeles.
Una vez configurado, es bastante fácil de repetir. El mismo método se aplicaría a otros emuladores si usted necesita usar un método diferente para enviar su archivo de texto al emulador.
(convirtiendo la discusión de comentarios en respuesta)
única solución en windows: https://github.com/gcb/AdbPaste
lo escribió en un par de horas para solucionar este problema. Ahora estoy de vuelta en Linux al 100%, ¡así que siéntase libre de unirse como colaborador o mantenedor!
Comando de escritura: dispositivos adb (enumerará el dispositivo conectado actualmente) Seleccione Cuadro de texto donde desea escribir texto. Comando de escritura: adb shell input text "Yourtext" (asegúrese de que solo un dispositivo esté conectado para ejecutar este comando) ¡Listo!
Vine aquí buscando una solución al mismo problema y terminé escribiendo una aplicación de Android para resolver este problema. Puede descargarlo en http://www.box.net/shared/6203bn441bfltkimajmk . Simplemente proporcione una URL a través del menú Preferencias para señalar un lugar donde pueda cambiar la respuesta web fácilmente. La primera línea de la respuesta web se copiará en el portapapeles de su emulador por usted. Se pueden encontrar más detalles en http://agilesc.barryku.com/?p=255 .
Para Mac y Linux, pruebe esta función en su archivo aliases_bash (ubicado en / etc / aliases_bash para la gente de Mac, asegúrese de usar sudo vim / etc / aliases_bash)
function adbtx {
userinput="$(sed 's/ /%s/g' <<< $1)"
adb shell input text "${userinput}";
}
export -f adbtx
Luego en la línea de comando ingrese:
adbtx 'Your text to emulator input'
' Su entrada de texto a emulador ' se ingresará en el campo de texto del emulador.
Felicitaciones a Eliot por su cadena de sustitución de sed.