- Sep 12, 2022
- 1
- 0
- 0
I know about the input tap x y shell command, however, I'm trying to understand how to
perform a click using the sendevent command. I been able to achieve it with the following command:
Where `X` and `Y` is the position that will be clicked, I'm testing it on the android emulator `BlueStacks 5` which the Display Resolution set to `1920x1080`.
The code is working and the click is fired, however, I couldn't understand how to convert the position where I want to be clicked to the sendevent XY position.
If I send using ADB:
It clicks somewhere around x75 y75, how this calc is done? i mean screen xy -> sendevent xy?
------------------------------------------------------------
How to replicate:
-----------------
* First enable BlueStacks 5 adb in the window: `Settings -> Advanced -> Android debug bridge`
* Open a cmd window and run `cd C:\Program Files\BlueStacks_nxt` assuming BlueStacks where installed in the default path.
Execute the commands:
* `hd-adb connect 127.0.0.1:X` where X is the port shown in the window where you enabled the ADB.
* `hd-adb -s 127.0.0.1:X shell`
Now we are on the shell, execute a new command: `getevent -p`
and search for:
On my emulator the input event for touch is `event5` on yours it can be different, replace it according.
Now you can simulate a click with the code below changing `XY` to the position where you want to be clicked:
I'm trying to figure out how to convert the emulator screen position to the `sendevent` position.
For example, if you want to perform a click at x200 y200, using sendevent what the value needed?
How to calculate it?
Note: I post the same question on StackOverflow (same title), I can't paste the link here as it's being flagged as spam.
perform a click using the sendevent command. I been able to achieve it with the following command:
Code:
sendevent /dev/input/event5 3 53 X &&
sendevent /dev/input/event5 3 54 Y &&
sendevent /dev/input/event5 0 2 0 &&
sendevent /dev/input/event5 0 0 0 &&
sendevent /dev/input/event5 0 2 0 &&
sendevent /dev/input/event5 0 0 0
Where `X` and `Y` is the position that will be clicked, I'm testing it on the android emulator `BlueStacks 5` which the Display Resolution set to `1920x1080`.
The code is working and the click is fired, however, I couldn't understand how to convert the position where I want to be clicked to the sendevent XY position.
If I send using ADB:
Code:
sendevent /dev/input/event5 3 53 2000 &&
sendevent /dev/input/event5 3 54 2000 &&
sendevent /dev/input/event5 0 2 0 &&
sendevent /dev/input/event5 0 0 0 &&
sendevent /dev/input/event5 0 2 0 &&
sendevent /dev/input/event5 0 0 0
It clicks somewhere around x75 y75, how this calc is done? i mean screen xy -> sendevent xy?
------------------------------------------------------------
How to replicate:
-----------------
* First enable BlueStacks 5 adb in the window: `Settings -> Advanced -> Android debug bridge`
* Open a cmd window and run `cd C:\Program Files\BlueStacks_nxt` assuming BlueStacks where installed in the default path.
Execute the commands:
* `hd-adb connect 127.0.0.1:X` where X is the port shown in the window where you enabled the ADB.
* `hd-adb -s 127.0.0.1:X shell`
Now we are on the shell, execute a new command: `getevent -p`
and search for:
Code:
... /dev/input/event5
name: "BlueStacks Virtual Touch"
On my emulator the input event for touch is `event5` on yours it can be different, replace it according.
Now you can simulate a click with the code below changing `XY` to the position where you want to be clicked:
Code:
sendevent /dev/input/event5 3 53 X &&
sendevent /dev/input/event5 3 54 Y &&
sendevent /dev/input/event5 0 2 0 &&
sendevent /dev/input/event5 0 0 0 &&
sendevent /dev/input/event5 0 2 0 &&
sendevent /dev/input/event5 0 0 0
I'm trying to figure out how to convert the emulator screen position to the `sendevent` position.
For example, if you want to perform a click at x200 y200, using sendevent what the value needed?
How to calculate it?