web-dev-qa-db-ja.com

Androidのadbを使用して、タッチスクリーンで継続的なスワイプアクションを生成することは可能ですか?

Adbを使用して、スワイプアクションを再現しようとしています。現在、このコードは機能します(スワイプ用)

adb Shell input touchscreen swipe 530 1420 530 1120
adb Shell input touchscreen swipe 530 1120 830 1120

これは

adb Shell input touchscreen swipe x1,y1, x2,y2

ただし、これらは2つの不連続なスワイプです。最初のスワイプを実行し、画面から手を離して2回目のスワイプを実行するのと同じです。

これを1回のスワイプで実現したいと思います。たとえば、下に熱い火があり、さまざまな場所で om-nom をドラッグする必要があるゲームを想像してみてください。指を離さずに障害物 om-nom ..上記のadbスワイプで、貧弱 om-nom は火に落ち、 roasted-om-nom になります。 :(

何かのようなもの

adb Shell input touchscreen swipe [(x1,y1, x2,y2), (x3,y3, x4,y4)...(xn-1,yn-1, xn,yn)]

adbでない場合、他の代替手段はありますか?

10
Ocelot

あなたはADBでそれを行うことができます。 geteventを使用して、手動入力を次のように記録します。

adb Shell getevent

または、特定のデバイスを記録するには:

adb Shell getevent /dev/input/eventx

次に、記録された入力を次のようにシミュレートします。

adb Shell sendevent /dev/input/eventx
9
HelgaM
adb Shell  "input touchscreen swipe 126 459 413 472 & input command touchscreen swipe 413 472 407 769"

Android device inputコマンド内で実行する必要があります。スワップの追加を続行するには between inputコマンド、以下の例:

adb Shell "
   input touchscreen swipe 126 459 413 472 1000 & \ # 1th line 
   input touchscreen swipe 413 472 72  776 1000 & \ # 2th line
   input touchscreen swipe 72  776 407 769 1000 | echo done # 3th line" 


126 459   =   302 446   =   413 472
===================================
112 599   =   268 613   =   470 612
===================================
72  776   =   263 802   =   407 769

input touchscreen swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)

ただし、より正確にスワイプするには、コマンド間で一時停止または遅延(スリープ、待機)する必要があります。

2
Cornea Valentin