Android 에뮬레이터에 텍스트 붙여 넣기


316

(데스크톱의) 클립 보드 컨텐츠를 EditViewAndroid 에뮬레이터에 복사 / 붙여 넣기하는 쉬운 방법이 있습니까?

(개발 / 테스트를 용이하게하기 위해)


2
re Joel Beckham-send SMS : > 일반적으로 텔넷을 통해 SMS 메시지로 복사 할 텍스트를 보낸 다음 SMS 메시지에서 텍스트를 복사합니다. 텔넷을 사용하는 대신 이클립스를 사용하여 에뮬레이터에서 들어오는 SMS를 시뮬레이션 할 수 있습니다. 이클립스 Android 도구 (버전 17은 이전 버전 일 수도 있음)에서 DDMS-Perspective를 엽니 다. "에뮬레이터 제어"/ "전화 작업"에서 들어오는 SMS를 시뮬레이트 할 수 있습니다.> 에뮬레이터가 메시지를 수신하면 원하는 위치에 복사하여 붙여 넣을 수 있습니다.
k3b

2
이 질문을 지금 본 사람이라면 이제 안드로이드에서 기본적으로 지원되는 것 - 여기에 언급 한 바와 같이 당신이 최신 안드로이드 스튜디오 / 에뮬레이터를 사용하고 있는지 확인 : stackoverflow.com/a/42678005/207552을
bschandramohan

2
텍스트 필드를 길게 누르고 붙여 넣기
onmyway133을

답변:


126

v25.3.x의 Android 에뮬레이터 및 x86 Google API 에뮬레이터 시스템 이미지 API 레벨 19 (Android 4.4-Kitkat) 이상을 사용하면 마우스 또는 키보드를 사용하여 데스크톱에서 간단하게 복사하여 붙여 넣을 수 있습니다.

이 기능은 Android Studio 2.3 에서 발표되었습니다.

Android 에뮬레이터로 복사하여 붙여 넣기


27
2018 년 1 월 현재 현재 에뮬레이터 버전에서 알려진 버그로 인해 때때로 작동이 중지됩니다. 이 문제를 해결하려면 "..."아이콘을 클릭하고 설정으로 이동 한 다음 "클립 보드 공유 사용"설정을 켜거나 끄십시오. ( 출처 )
mhsmith

@mhsmith Android 명령 줄 도구를 사용하거나 ~/.android/avd/ .ini파일 편집을 통해 명령 줄에서 어떻게합니까 (클립 보드 공유 재설정) ?
Chloe

@Chloe이 문제는 이미 실행중인 에뮬레이터와 관련이 있기 때문에 그 중 하나가 차이를 만들지 않을 것입니다.
mhsmith

1
Mac에 어떻게 붙여 넣습니까? Cmd를 누르면 멀티 터치가 나타납니다. Cmd-V는 아무것도하지 않습니다.
jcollum

17
@jcollum은 왼쪽 클릭하여 붙여 넣을 텍스트 필드를 잡고 '붙여 넣기'를 클릭하십시오. cmd + v가 작동하지 않으며 ctrl + v도 작동하지 않습니다.
Liam Dawson

306

터미널에서 입력 adb shell input text 'my string here. With some characters escaped like \$ that'

텍스트에 공백을 포함시키는 대체 방법 %s은 각 space문자 를 대체하는 것 입니다 .


22
Mac을 사용하는 경우 클립 보드의 내용을 훨씬 쉽게 붙여 넣을 수 있습니다. adb shell input text "pbpaste"
lowellk

3
오늘 몇 시간이 걸리고 공간 문제에 대한 파이썬으로 해결 방법을 썼습니다. 이제 12 개의 동기화 계정을 만들지 않고도 북마크 브라우저에서 주식 브라우저로 훨씬 쉽게 북마크를 종료 할 수 있습니다. github.com/gcb/AdbPaste (에뮬레이터가로드되기를 기다리는 동안 온라인 게임 세션이 두 번 ...! $ % # slow emulator)
gcb

2
이것은 일부 UTF 문자와 함께 작동하지 않는 것 같습니다. 보내기를 시도한 후 'ლ\(ಠ益ಠლ\)''Killed'라고 표시되거나 성공한 것으로 보이지 않으며 아무 것도 입력되지 않으며 에뮬레이터에 붙여 넣을 수있는 것도 없습니다. DDMS에서 시도한 SMS 방법도 여기서 작동하지 않는 것 같습니다. "? (????)"로 표시됩니다.
Groxx

2
나도 공백이있는 문자열을 보낼 수 없습니다. % s를 사용해야합니다.
Peter

2
@ 피터와 로즈, 새로운 라인을 추가하는 방법이 있습니까? adb shell input text "This%sis%stext\nDoes%snot%work%here.""이것은 텍스트입니다. \ n 여기서 작동하지 않습니다."
Firelord

84

일반적으로 텔넷을 통해 SMS 메시지로 복사 할 텍스트를 보낸 다음 SMS 메시지에서 텍스트를 복사합니다. 방법은 다음과 같습니다.

텔넷을 통해 연결 :

  • 통사론: telnet localhost <port>
  • 예: telnet localhost 5554

(5554가 기본 포트입니다. 에뮬레이터의 제목 표시 줄에 사용중인 포트가 표시되므로 다른 포트인지 확인할 수 있습니다).

문자 보내:

  • 통사론: sms send <senders phone number> <message>
  • 예: sms send 1231231234 This is the message you want to send

(발신자 전화 번호 만 만들 수 있습니다)

메시지가 브라우저에 복사 / 붙여 넣기하지 않고 클릭 할 수있는 하이퍼 링크로 자동 변환되므로 링크에 매우 효과적입니다.

에뮬레이터가 메시지를 수신하면 원하는 위치에 복사하여 붙여 넣을 수 있습니다.


3
당신은 심지어 telnet이 필요하지 않습니다 ... ddms에서 SMS를 보낼 수 있습니다 (그러나 ddms는 telnet이 필요합니다). 그러나 좋은 생각 :)
Tima

@ 머-좋은 생각입니다. 감사!
조엘 베컴

1
관심있는 사람은 gist.github.com/2050770
Todd Mazierski를

7
이 답변은 과잉입니다. 사용하십시오 adb. 내 대답을 참조하십시오.
로즈 페론

1
과잉 여부에 관계없이 특수 문자를 이스케이프하지 않고도 텍스트를 그대로 붙여 넣을 수 있습니다.
dmitry

28

어디에서나 복사하고, 에뮬레이터 전화의 편집 텍스트를 클릭 한 상태에서 텍스트를 놓으십시오 (실제 전화에 붙여 넣기 위해 길게 누르는 것과 같은 종류). PASTE 옵션이 나타난 다음 PASTE입니다.


3
감사합니다! 확실히 내가 가장 좋아하는 대답. 현재 버전의 에뮬레이터에서는 매우 편리합니다. (현재 에뮬레이터는 클립 보드 공유를 허용하는 "설정"의 에뮬레이터 컨트롤에 설정이 있습니다.
albert c braun

Command 키는 기본적으로 터치 제스처를 시작하기 때문에 Mac에 붙여 넣는 방법입니다.
Jim

19

이것이 유용한 지 확실하지 않지만, 모바일 브라우저에서 데스크탑 브라우저의 긴 URL을 열어야하는 경우 해당 URL을 사용하여 SMS를 보내고 메시지 앱에서 직접 열 수 있습니다.

여기에 이미지 설명을 입력하십시오


그 텍스트를 복사 할 수도 있습니다. 나는이 방법을 가장 간단하고 까다로운 것으로 발견했습니다!
Hirbod Behnam

이 오류가 발생했습니다. "메시지를 보낼 수없고 라디오가 꺼져 있습니다"(MacBook)
Atetc

그것은 분명히 유용합니다! 에뮬레이터의 동일한 UI, 텔넷, 매개 변수는 없습니다. 그리고 URL 사용 사례는 내 요구를 충족시킵니다. 매우 효과적인 솔루션입니다.
Alberto De Caro

11

Mac에서 Android Studio를 사용하는 경우 adb실행 파일 의 전체 경로를 제공해야 할 수 있습니다 . 이 경로를 찾으려면 다음을여십시오.

Android Studio > Tools > Android > SDK Manager

SDK 위치에 경로를 복사하십시오. adb실행은 내 것 platform-tools디렉토리. 나에게 이것은 경로였다.

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

이제이 명령을 실행할 수 있습니다 :

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

7

나는이 문제에 질려서 그것을 처리하기 위해이 별칭을 만들었습니다.

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

그런 다음 새 터미널 창을 열 때 "ap"을 입력하면 클립 보드에있는 모든 내용이 에뮬레이터의 선택된 텍스트 필드에 붙여 넣습니다.

설정

이 이름을 프로필에 추가하면 (의 ~/.bash_profilezsh 사용자 인 대부분의 사용자 ~/.zshrc) 별칭을 모든 곳에서 사용할 수 있습니다. 또는 bash 사용자 인 경우 (MacOS의 기본값) 터미널에서 다음 명령을 실행하여 설정할 수 있습니다.

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

또는alias ap="adb shell input text `pbpaste`"
gderaco

창 및 별명 사용하고 'alias' is not recognized as an internal or external command, operable program or batch file. 무엇을해야 하는지를
샤리프를

6

API 레벨> = 24 만

로컬 컴퓨터에서 텍스트를 복사 한 다음이 명령을 실행하십시오.

adb shell input keyevent 279

Android 에뮬레이터 설정에서 Enable Clipboard Sharing옵션이 활성화되어 있는지 확인하십시오


5

약간 까다로울 수 있지만 에뮬레이터 컨트롤을 사용하여 에뮬레이터에 SMS를 보낼 수 있습니다. 그런 다음 더 긴 텍스트를 다시 입력 할 필요가 없으며 에뮬레이터에 복사하여 붙여 넣을 수 있습니다.

다른 방법 : "telnet localhost PORT"를 통해 에뮬레이터에 연결 한 다음 하드웨어 이벤트 전송을 사용하여 텍스트 입력 이벤트를 에뮬레이터에 보내십시오 (UTF-8 필요). 볼


5

해결 방법없이이 작업을 수행 할 수 있습니다. 붙여 넣기 알림이 나타날 때까지 입력 필드에서 비트를 클릭 한 후 붙여 넣기를 클릭하십시오. 그게 다야!


4

Linux에서는 클립 보드에서 직접 텍스트를 붙여 넣습니다.

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

또한이 명령을 사용하여 전역 키보드 단축키를 만드는 것이 매우 유용합니다. Ctrl+Shift+Super+V



2

C2DM을 보셨습니까? chrome2phone 및 fox2phone은 링크 및 클립 보드 텍스트를 전송하여 자동으로 전화기에 복사 할 수 있습니다. 또한 adb 쉘을 사용해보십시오. 서비스 (서비스 호출 클립 보드 ...)를 사용할 수있는 서비스 명령 (/ system / bin / service)이 있습니다. 트랜잭션 코드는 getClipboardText, setClipboardText 및 hasClipboardText에 대해 각각 1, 2 및 3입니다.


1

Visual Studio Emulator를 사용하는 방법은 다음과 같습니다.

먼저 가상 SD 카드를 마운드하십시오.

  1. 에뮬레이터에 대한 추가 도구 (작은 >> 아이콘)를 사용하고 SD 카드 탭으로 이동하십시오.
  2. 컴퓨터에서 가상 SD 카드와 동기화 할 폴더를 선택하십시오.
  3. SD 카드에서 당기면 선택한 폴더에 폴더 구조가 생성됩니다.

텍스트를 전송할 텍스트 파일을 설정하십시오.

  1. Google Play 스토어를 사용하여 원하는 텍스트 편집기를 설치하십시오.
  2. 이전에 만든 가상 sd 카드 디렉토리의 다운로드 디렉토리에 컴퓨터에 텍스트가 포함 된 텍스트 파일을 작성하십시오.

클립 보드에 텍스트를 보내야 할 때마다.

  1. 위에서 만든 텍스트 파일을 편집하십시오.
  2. 추가 도구 (작은 >> 아이콘)로 이동하여 SD 카드로 푸시를 선택하십시오.
  3. 설치 한 텍스트 편집기에서 텍스트 파일을 열고 텍스트를 클립 보드에 복사하십시오. (대화 상자가 열릴 때 마우스를 누른 상태에서 모두 선택을 선택한 다음 복사 아이콘을 클릭하십시오)

일단 설정하면 반복하기가 쉽습니다. 텍스트 파일을 에뮬레이터로 푸시하려면 다른 방법을 사용해야 할 수도 있으므로 다른 에뮬레이터에도 동일한 방법을 적용 할 수 있습니다.


또한 내가 사용하는 텍스트 편집기는 내용이 변경되었음을 알리고 다시로드 할 것인지 묻습니다.
Alexander Higgins이

1

(댓글 토론을 답변으로 변환)

Windows의 유일한 솔루션 : https://github.com/gcb/AdbPaste

이 문제를 해결하기 위해 몇 시간 안에 작성했습니다. 나는 지금 100 % 리눅스로 돌아 왔으므로, 기고자 또는 관리자로서 자유롭게 참여하십시오!


고마워 다른 사람들에게 참고 : 여러 줄을 보내는 것이 느립니다. 업로드 할 3 페이지 LUA 스크립트가 있으며이 솔루션은 파일 소스에서 20 분 정도 걸립니다. Google은 이러한 요구를 해결해야합니다. 텔넷 인터페이스가 훨씬 빠른 오픈 소스 키보드 응용 프로그램을 알고 있지만 키보드를 켜고 끄는 것이 추가 단계가됩니다.
RoundSparrow hilltx 1

1
마지막 의견에서 언급 한 속도 문제를 해결하려면 adb broadcast 명령에서 클립 보드 내용을 가져올 수있는 작은 도우미 응용 프로그램을 장치에 배치하는 것이 훨씬 빠릅니다. 이것은 AdbPaste 가하는 것처럼 직접 입력하는 대신 클립 보드를 채 웁니다.하지만 텍스트 파일을 읽도록 향상시킬 수 있었으며 3 페이지 LUA 스크립트의 경우 adb 명령에서 Android로 가져 오는 데 1 ~ 2 초 밖에 걸리지 않습니다. 텍스트 상자. 응용 프로그램은 클리퍼라고하고 텍스트 파일을 읽을 수 있도록 향상되었습니다 : github.com/RoundSparrow/clipper
RoundSparrow hilltx

1

쓰기 명령 : adb 장치 (현재 연결된 장치가 표시됨) 텍스트를 쓰려는 텍스트 상자를 선택하십시오. 쓰기 명령 : adb 쉘 입력 텍스트 "Yourtext"(이 명령을 실행하려면 하나의 장치 만 연결되어 있어야합니다) 완료!


0

나는 같은 문제에 대한 해결책을 찾기 위해 여기에 왔고이 문제를 해결하기 위해 Android 응용 프로그램을 작성했습니다. http://www.box.net/shared/6203bn441bfltkimajmk 에서 다운로드 할 수 있습니다 . 기본 설정 메뉴를 통해 URL을 제공하면 웹 응답을 쉽게 변경할 수있는 위치를 가리킬 수 있습니다. 웹 응답의 첫 번째 줄이 에뮬레이터의 클립 보드에 복사됩니다. 자세한 내용은 http://agilesc.barryku.com/?p=255참조하십시오 .


1
실행 코드를 여기에 게시해서는 안됩니다. 소스 코드가 훨씬 나을 것입니다.
lowellk

0

Mac 및 Linux의 경우 aliases_bash 파일에서이 기능을 시도하십시오 (Mac 사용자의 경우 / etc / aliases_bash에 있으며 sudo vim / etc / aliases_bash를 사용해야합니다).

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

그런 다음 명령 행에 다음을 입력하십시오.

adbtx 'Your text to emulator input'

' 에뮬레이터 입력에 텍스트 것은 '에뮬레이터 텍스트 필드에 입력됩니다.

sed의 대체 문자열로 Eliot에게 Kudos.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.