ドロイドのキープレスをプログラムでシミュレートするにはどうすればよいですか?私はマニュアルキープレス(ドローイングに登場する人はキーを押しているが、プログラムでやっている)を模倣したいと思う。Androidシミュレートキープレス
そこにはIWindowManager
という解決策がありますが、それは新しいSDKではもうオプションではありません。
ドロイドのキープレスをプログラムでシミュレートするにはどうすればよいですか?私はマニュアルキープレス(ドローイングに登場する人はキーを押しているが、プログラムでやっている)を模倣したいと思う。Androidシミュレートキープレス
そこにはIWindowManager
という解決策がありますが、それは新しいSDKではもうオプションではありません。
あなたが機器を使用することができ、あなたの活動ののonCreateから呼び出さすなわち、次のコードは、メニューが開かれ、複数回閉じれるようになります:
new Thread(new Runnable() {
@Override
public void run() {
try {
Instrumentation inst = new Instrumentation();
for (int i = 0; i < 10; ++i) {
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_MENU);
Thread.sleep(2000);
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
Thread.sleep(2000);
}
}
catch(InterruptedException e){
}
}
}).start();
...しかし、私は、これはあなたが何であるかであるかどうかわからないです
これはまさに私が探しているものですが、厳密にテスト用の計測器ではありませんか?私はテストではなく、ライブアプリで使用できるソリューションを探しています。前もって感謝します。 – calcrisk33
@ calcrisk33これがライブアプリの実行可能なソリューションであるかどうかについての情報はありませんでした。あなたはそのように使い終わったのですか? – Kirk
@Kirk私はやったし、キーストローク/プレスをシミュレートするために非常にうまくいった。 – calcrisk33
イベントを消費するビューがある場合は、BaseInputConnectionクラスとそのsendKeyEventメソッドを使用できます。
これを使用するには、KeyEventを受け取るターゲットビュー(EditTextなど)を指定する必要があります。例えば:(編集テキストが集中した一方で)
EditText editText;
BaseInputConnection inputConnection = new BaseInputConnection(editText, true);
inputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_POUND));
この結果は、ユーザーのようですが、実際に#キーを押します。
ます。またinput text
、すなわちを使用することができます
:
コンピュータからadb
経由:
adb shell input text 'example\\@email.com'
shell
から:
input text 'example\\@email.com'
テスト機器を、以外のものに対応するアプリを変更します実際のタッチ、およびLinuxレベルでイベントを注入するためのデバイスの「ルーティング」は、3つの選択肢です。 –