とにかく(デスクトップの)クリップボードの内容をAndroid EmulatorのEditView
にコピー/貼り付けできますか?
(開発/テストを容易にするためだけに)
Androidエミュレーターのv25.3.xおよびx86 Google APIエミュレーターシステムイメージAPIレベル19(Android 4.4-KitKat)以降では、マウスまたはキーボードを使用してデスクトップから単純にコピーアンドペーストできます。
この機能は Android Studio 2. で発表されました
ターミナルで、adb Shell input text 'my string here. With some characters escaped like \$ that'
と入力します
テキストにスペースを含める代替方法は、各space
文字を%s
に置き換えることです。
私は通常、コピーしたいテキストを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
(送信者の電話番号を構成するだけです)
メッセージは自動的にハイパーリンクに変換されるため、リンクに対して非常にうまく機能します。ハイパーリンクは、ブラウザにコピー/貼り付けすることなくクリックできます。
エミュレータがメッセージを受信すると、コピーして好きな場所に貼り付けることができます。
どこからでもコピーし、テキストを移動するエミュレーター電話の編集テキストをクリックして押したままにします(実際の電話に長押しして貼り付けるようなものです)。PASTEオプションが表示され、PASTEが表示されます。
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'
少し難しいかもしれませんが、エミュレータコントロールを使用してエミュレータにsmsを送信できます。その後、テキストが長い場合はすべてのテキストを再入力する必要はなく、エミュレータにコピーアンドペーストできます。
別の方法:「telnet localhost PORT」を介してエミュレーターに接続し、ハードウェアイベント送信を使用してテキスト入力イベントをエミュレーターに送信します(UTF-8である必要があります)。 this を見てください
Linuxでは、クリップボードからテキストを直接貼り付けます
adb Shell input text "'$(xclip -selection c -o)'"
また、たとえばこのコマンドでグローバルキーボードショートキーを作成すると非常に便利です。 Ctrl+Shift+Super+V
これも回避策なしで実行できます。貼り付け通知が表示されるまで入力フィールドを少しクリックしたままにし、貼り付けをクリックします。それでおしまい!
私はこの問題にうんざりしたので、このエイリアスを作成して処理しました。
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
C2DMを見たことがありますか? chrome2phoneとfox2phoneは、リンクとクリップボードのテキストを送信し、電話に自動的にコピーできます。また、adbシェルを使用してみてください。サービス(サービス呼び出しクリップボード...)を使用できるサービスコマンド(/ system/bin/service)があります。トランザクションコードは、getClipboardText、setClipboardText、およびhasClipboardTextに対してそれぞれ1、2、および3です。
ユーザーがAndroidエミュレーターまたはビジュアルインターフェイスから接続されたデバイスに貼り付けをコピーできるこのWindowsアプリケーションを作成しました。 https://github.com/Florin-Birgu/Android-Copy-Paste
書き込みコマンド:adbデバイス(現在接続されているデバイスがリストされます)テキストを書き込むテキストボックスを選択します。書き込みコマンド:adb Shell input text "Yourtext"(このコマンドを実行するために接続されているデバイスが1つだけであることを確認してください)完了!
(コメントディスカッションを回答に変換する)
windowsでの唯一のソリューション: https://github.com/gcb/AdbPaste
この問題を回避するために数時間でそれを書きました。 100%のlinuxに戻ったので、貢献者またはメンテナーとして気軽に参加してください!
Visual Studio Emulatorを使用して、これが私の方法です。
最初の仮想SDカードの取り付け:
テキストを転送するテキストファイルを設定します。
クリップボードにテキストを送信する必要があるときはいつでも。
一度設定すれば、簡単に繰り返すことができます。別の方法を使用してテキストファイルをエミュレータにプッシュする必要がある場合、同じ方法を他のエミュレータに適用できます。
APIレベル> = 24のみ
ローカルマシンからテキストをコピーして、このコマンドを実行するだけです
adb Shell input keyevent 279
Android Emulator SettingsでEnable Clipboard Sharing
オプションが有効になっていることを確認してください
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の代替文字列に対する称賛。
私は同じ問題の解決策を探してここに来て、この問題を解決するAndroidアプリケーションを作成することになりました。 http://www.box.net/shared/6203bn441bfltkimajmk からダウンロードできます。 [設定]メニューからURLを指定するだけで、Webレスポンスを簡単に変更できる場所を指定できます。 Web応答の最初の行は、エミュレーターのクリップボードにコピーされます。詳細は http://agilesc.barryku.com/?p=255 で見つけることができます。