2017-04-03 19 views
0

私は現在、メインアクティビティのボタンを押してデータ収集を行うアプリケーションがあります。私は同時に複数のデバイスでこれを行う必要があります。現時点では、私は単に、ボタンの押下をタイミングを合わせて(手動で各デバイスを指で押して)手動で行うようにしています。明らかに、これは2つ以上のデバイスでは実際には機能しません。同時に複数のデバイスを実行する方法 - Android

私のPCから同時にデバイス上で(ボタンが押されたときに呼び出される)メソッドを実行する方法があるのでしょうか?

この種の実装には多くの回答がAppiumを使用していますが、これは私が必要とするものにはあまりにも多すぎるようです。コマンドライン(adp)でこれを実行する方法はありませんか?あるいは、デバイスが接続されている場所にメソッドが呼び出される小さなサーバーを設定するだけですか?

ありがとうございます。

+0

ボタンを押してください – SaiPawan

+0

@sai、編集済みです。うまくいけば、これは役に立ちます。基本的には、メソッドを実行するためにデバイス上のボタンを押すだけです。私は同時に複数のデバイスでこれを行う必要があります。 – Waddas

+0

並列実行を実行する – SaiPawan

答えて

0

キーを押したときに必要なメソッドを実行するコードを追加しました。下のサンプルコードでは、私はF12を使用しました。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 

    // KEYCODE_F12 = 142 
    if (keyCode == KeyEvent.KEYCODE_F12) { 
     findViewById(R.id.button).performClick(); 
    } 

    return super.onKeyDown(keyCode, event); 
} 

F12のキーコード番号は142

adb devicesが接続されているデバイスIDを取得するために使用されています。私はその後、デバイスに入力するキーイベントを、ADBを使用することができます。

start adb -s device_id1 shell input keyevent 142 
start adb -s device_id2 shell input keyevent 142 

コマンドを試してみて、デバイスへの入力遅延を減らすために、可能な限り並列でのadbコマンドを実行するために使用される「開始します」。

1

コマンドラインでadbを使用してボタンをクリックできますが、x座標とy座標が必要です。

adb shell input tap x y 
+0

ボタンの座標は異なるデバイスと同じではないため、座標の代わりにキーイベントを使用しました。あなたは私の解決策に触発しましたが、ありがとう! – Waddas

関連する問題