web-dev-qa-db-ja.com

Androidエミュレーターにテキストを貼り付けます

とにかく(デスクトップの)クリップボードの内容をAndroid EmulatorのEditViewにコピー/貼り付けできますか?

(開発/テストを容易にするためだけに)

270
ankitjaininfo

Androidエミュレーターのv25.3.xおよびx86 Google APIエミュレーターシステムイメージAPIレベル19(Android 4.4-KitKat)以降では、マウスまたはキーボードを使用してデスクトップから単純にコピーアンドペーストできます。

この機能は Android Studio 2. で発表されました

Copy and Paste with the Android Emulator

79
Jamal Eason

ターミナルで、adb Shell input text 'my string here. With some characters escaped like \$ that'と入力します

テキストにスペースを含める代替方法は、各space文字を%sに置き換えることです。

284
Rose Perrone

私は通常、コピーしたいテキストをtelnet経由でSMSメッセージとして送信し、SMSメッセージからテキストをコピーします。方法は次のとおりです。

Telnetを介して接続します。

  • 構文:telnet localhost <port>
  • 例:telnet localhost 5554

(5554がデフォルトのポートです。エミュレータのタイトルバーには使用中のポートが表示されるため、異なるかどうかを確認できます)。

メッセージを送る:

  • 構文:sms send <senders phone number> <message>
  • 例:sms send 1231231234 This is the message you want to send

(送信者の電話番号を構成するだけです)

メッセージは自動的にハイパーリンクに変換されるため、リンクに対して非常にうまく機能します。ハイパーリンクは、ブラウザにコピー/貼り付けすることなくクリックできます。

エミュレータがメッセージを受信すると、コピーして好きな場所に貼り付けることができます。

81
Joel Beckham

それが役立つかどうかはわかりませんが、モバイルブラウザでデスクトップブラウザから長いURLを開く必要がある場合は、そのURLでSMSを送信し、メッセージアプリから直接開くことができます。

enter image description here

13
TEH EMPRAH

どこからでもコピーし、テキストを移動するエミュレーター電話の編集テキストをクリックして押したままにします(実際の電話に長押しして貼り付けるようなものです)。PASTEオプションが表示され、PASTEが表示されます。

11
Raymond Wachaga

MacでAndroid St​​udioを使用している場合は、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'
6
Andrew

少し難しいかもしれませんが、エミュレータコントロールを使用してエミュレータにsmsを送信できます。その後、テキストが長い場合はすべてのテキストを再入力する必要はなく、エミュレータにコピーアンドペーストできます。

別の方法:「telnet localhost PORT」を介してエミュレーターに接続し、ハードウェアイベント送信を使用してテキスト入力イベントをエミュレーターに送信します(UTF-8である必要があります)。 this を見てください

5
mad

Linuxでは、クリップボードからテキストを直接貼り付けます

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

また、たとえばこのコマンドでグローバルキーボードショートキーを作成すると非常に便利です。 Ctrl+Shift+Super+V

4
Andrey Izman

これも回避策なしで実行できます。貼り付け通知が表示されるまで入力フィールドを少しクリックしたままにし、貼り付けをクリックします。それでおしまい!

3
nana janashia

私はこの問題にうんざりしたので、このエイリアスを作成して処理しました。

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

次に、新しいターミナルウィンドウを開いたときに「ap」と入力すると、クリップボードにあるものがエミュレータでアクティブに選択されているテキストフィールドに貼り付けられます。

セットアップ

これをプロファイルに追加するだけで(~/.bash_profileであるzshユーザーの場合は~/.zshrcであるほとんどのユーザーの場合)、どこでもエイリアスを使用できるようになります。または、bashユーザー(MacOSのデフォルト)の場合、ターミナルで次のコマンドを実行して設定できます。

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

C2DMを見たことがありますか? chrome2phoneとfox2phoneは、リンクとクリップボードのテキストを送信し、電話に自動的にコピーできます。また、adbシェルを使用してみてください。サービス(サービス呼び出しクリップボード...)を使用できるサービスコマンド(/ system/bin/service)があります。トランザクションコードは、getClipboardText、setClipboardText、およびhasClipboardTextに対してそれぞれ1、2、および3です。

2
yingted

ユーザーがAndroidエミュレーターまたはビジュアルインターフェイスから接続されたデバイスに貼り付けをコピーできるこのWindowsアプリケーションを作成しました。 https://github.com/Florin-Birgu/Android-Copy-Paste

enter image description here

1
Florin Birgu

書き込みコマンド:adbデバイス(現在接続されているデバイスがリストされます)テキストを書き込むテキストボックスを選択します。書き込みコマンド:adb Shell input text "Yourtext"(このコマンドを実行するために接続されているデバイスが1つだけであることを確認してください)完了!

1
Arpan24x7

(コメントディスカッションを回答に変換する)

windowsでの唯一のソリューション: https://github.com/gcb/AdbPaste

この問題を回避するために数時間でそれを書きました。 100%のlinuxに戻ったので、貢献者またはメンテナーとして気軽に参加してください!

1
gcb

Visual Studio Emulatorを使用して、これが私の方法です。

最初の仮想SDカードの取り付け:

  1. エミュレータの追加ツール(小さな>>アイコン)を使用して、[SDカード]タブに移動します。
  2. 仮想SDカードと同期するコンピューター上のフォルダーを選択します。
  3. SDカードから引き出します。これにより、選択したフォルダーにフォルダー構造が作成されます。

テキストを転送するテキストファイルを設定します。

  1. Google Playストアを使用して、選択したテキストエディターをインストールします
  2. 前に作成した仮想SDカードディレクトリのダウンロードディレクトリに、コンピューター上のテキストを含むテキストファイルを作成します。

クリップボードにテキストを送信する必要があるときはいつでも。

  1. 上記で作成したテキストファイルを編集します。
  2. [追加ツール](小さな>>アイコン)に移動し、[SDカードにプッシュ]を選択します。
  3. インストールしたテキストエディターでテキストファイルを開き、テキストをクリップボードにコピーします。 (ダイアログが開いたらマウスを押し、すべて選択を選択し、コピーアイコンをクリックします)

一度設定すれば、簡単に繰り返すことができます。別の方法を使用してテキストファイルをエミュレータにプッシュする必要がある場合、同じ方法を他のエミュレータに適用できます。

1

APIレベル> = 24のみ

ローカルマシンからテキストをコピーして、このコマンドを実行するだけです

adb Shell input keyevent 279

Android Emulator SettingsでEnable Clipboard Sharingオプションが有効になっていることを確認してください

0
Deadpool

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の代替文字列に対する称賛。

0
Baker

私は同じ問題の解決策を探してここに来て、この問題を解決するAndroidアプリケーションを作成することになりました。 http://www.box.net/shared/6203bn441bfltkimajmk からダウンロードできます。 [設定]メニューからURLを指定するだけで、Webレスポンスを簡単に変更できる場所を指定できます。 Web応答の最初の行は、エミュレーターのクリップボードにコピーされます。詳細は http://agilesc.barryku.com/?p=255 で見つけることができます。

0
barryku