4

ADBコマンドで制御したいAndroid TVボックスがあります。特に、「タップ」イベントを送信したいです。これまでのところ、「adb shell input tap x、y」で実行していますが、これはうまく機能しますが、非常に遅いです。だから私は「adb shell sendevent ...」でそれをやろうとしています。これはより速いと思います。

これを行う方法についていくつかのチュートリアルに従いましたが、単純なシングル タップをデバイスに送信するためにイベント シーケンスを記録できないという問題に直面しています。

これは私がこれまで行ってきたことです。イベント シーケンスを取得するために、「getevent」コマンドで取得しようとしました。

q201:/ # getevent -l
add device 1: /dev/input/event4
  name:     "HID 04b3:310b"
could not get driver version for /dev/input/mouse1, Not a typewriter
add device 2: /dev/input/event3
  name:     "cec_input"
could not get driver version for /dev/input/mice, Not a typewriter
add device 3: /dev/input/event2
  name:     "gpio_keypad"
add device 4: /dev/input/event1
  name:     "adc_keypad"
could not get driver version for /dev/input/mouse0, Not a typewriter
add device 5: /dev/input/event0
  name:     "aml_keypad"

マウスの左ボタンをクリックすると、次のイベントが表示されます。

/dev/input/event4: EV_MSC       MSC_SCAN             00090001
/dev/input/event4: EV_KEY       BTN_MOUSE            DOWN
/dev/input/event4: EV_SYN       SYN_REPORT           00000000
/dev/input/event4: EV_MSC       MSC_SCAN             00090001
/dev/input/event4: EV_KEY       BTN_MOUSE            UP
/dev/input/event4: EV_SYN       SYN_REPORT           00000000

これ以上イベントは生成されません。マウスをクリックするたびに、同じイベントが生成されます。同じコード。同じ値。いつも同じ !

それで...私がクリックした座標はどこですか?? クリックしている位置に関するイベントが発生しないのはなぜですか? 実際、クリックはデバイス上で機能するので、イベントはどこにあるのでしょうか? イベントがないと、sendeventコマンドでクリックを再現できません。

ご協力ありがとうございました!グラム

4

1 に答える 1

1

最後に、タップをシミュレートするためにモンキー(モンキーランナーではありません)を使用しました。はるかに高速。

于 2020-07-30T22:07:15.263 に答える