(デスクトップの)クリップボードのコンテンツをEditView
Android Emulator にコピー/貼り付ける簡単な方法はありますか?
(開発/テストを容易にするため)
(デスクトップの)クリップボードのコンテンツをEditView
Android Emulator にコピー/貼り付ける簡単な方法はありますか?
(開発/テストを容易にするため)
回答:
Androidエミュレーターのv25.3.xおよびx86 Google APIエミュレーターシステムイメージAPIレベル19(Android 4.4-Kitkat)以降では、マウスまたはキーボードを使用してデスクトップからコピーして貼り付けることができます。
この機能はAndroid Studio 2.3で発表されました
~/.android/avd/
.ini
ファイルを編集して、それをどのように行います(クリップボードの共有をリセット)。
ターミナルで次のように入力します adb shell input text 'my string here. With some characters escaped like \$ that'
テキストにスペースを含める別の方法は%s
、各space
文字を置き換えることです。
adb shell input text "
pbpaste"
'ლ\(ಠ益ಠლ\)'
、「強制終了しました」と表示されるか、成功したように見え、何も入力されていないか、エミュレータに貼り付け可能なものがありません。SMSメソッド(DDMSから試しました)はここでも機能していないようです。「?(????)」と表示されます:(
adb shell input text "This%sis%stext\nDoes%snot%work%here."
「これはテキストです\ nここでは機能しません。」と出力します。
通常、コピーするテキストをSMSメッセージとしてTelnetで送信し、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
(あなたは送信者の電話番号を作ることができます)
メッセージは自動的にハイパーリンクに変換されるので、これはリンクに対して非常にうまく機能します。ハイパーリンクは、ブラウザーにコピー/貼り付けしなくてもクリックできます。
エミュレータがメッセージを受信したら、コピーして好きな場所に貼り付けることができます。
adb
。私の答えを見てください。
どこからでもコピーし、エミュレータの電話の編集テキストをクリックして、テキストを移動する場所で押し続けます(実際の電話に押し続けるのと同じようなものです)。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'
この問題に飽きたので、このエイリアスを作成して処理しました。
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
alias ap="adb shell input text `pbpaste`"
'alias' is not recognized as an internal or external command, operable program or batch file.
何をすべきか
Linuxでは、これはクリップボードから直接テキストを貼り付けます
adb shell input text "'$(xclip -selection c -o)'"
また、このコマンドを使用してグローバルキーボードショートキーを作成すると非常に便利です。 Ctrl+Shift+Super+V
ユーザーがビジュアルインターフェースからAndroidエミュレーターまたは接続されたデバイスにコピーして貼り付けることができるこのWindowsアプリケーションを作成しました。 https://github.com/Florin-Birgu/Android-Copy-Paste
Visual Studio Emulatorを使用して、これが私の方法です。
まず仮想sdカードをマウンドします:
テキストを転送するテキストファイルを設定します。
クリップボードにテキストを送信する必要があるときはいつでも。
一度設定すれば、簡単に繰り返すことができます。テキストファイルをエミュレーターにプッシュするために別の方法を使用する必要がある場合があるため、同じ方法を他のエミュレーターに適用できます。
(コメントディスカッションを回答に変換)
Windowsでの唯一のソリューション:https : //github.com/gcb/AdbPaste
この問題を回避するために数時間でそれを書いた。私は100%linuxに戻ったので、貢献者またはメンテナとして自由に参加してください!
私は同じ問題の解決策を探してここに来て、この問題を解決するためのAndroidアプリケーションを作成することになりました。http://www.box.net/shared/6203bn441bfltkimajmkからダウンロードできます。[設定]メニューからURLを指定して、Web応答を簡単に変更できる場所を指定するだけです。Web応答の最初の行は、エミュレータのクリップボードにコピーされます。詳細については、http://agilesc.barryku.com/?p = 255を参照してください。
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に称賛。