Skip to main content

Sendevents for faster / more reliable touch/longtouch events when using ADB

Project description

Send touch/longtouch events to BlueStacks/Android

$pip install sendevent-touch



from sendevent_touch import SendEventTouch



sendtouch = SendEventTouch(

    adb_path="C:\\Users\\Gamer\\AppData\\Local\\Android\\Sdk\\platform-tools\\adb.exe",

    deviceserial="localhost:5735",

    sdcard="/storage/emulated/0/",  # it is probably better to pass the path, not the symlink

    tmp_folder_on_sd_card="AUTOMAT",  # if the folder doesn't exist, it will be created

    bluestacks_divider=32767,

    use_bluestacks_coordinates=True,  # Recalculates the BlueStacks coordinates https://stackoverflow.com/a/73733261/15096247

)



sendtouch.connect_to_adb()



# Useful if you want to repeat the click

df_click1 = sendtouch.get_dataframe_for_clicks(50, 50)

sendtouch.touch_df(

    df_click1, struct_folder="struct real"

)  # "struct real" will use the recalculated coordinates for BlueStacks





# Touching without returning a DataFrame

sendtouch.touch(520, 40, struct_folder="struct real")





# Same thing for longtouch, duration is in seconds

sendtouch.longtouch_df(df_click1, duration=2.5, struct_folder="struct real")

sendtouch.longtouch(520, 40, duration=3.1, struct_folder="struct real")





# Using struct_folder="struct" should work for any rooted Android device, but I haven't checked it!

# I would be grateful for any feedback!

df_click1 = sendtouch.get_dataframe_for_clicks(50, 50)

sendtouch.touch_df(df_click1, struct_folder="struct")

sendtouch.touch(520, 40, struct_folder="struct")





sendtouch.longtouch_df(df_click1, duration=2, struct_folder="struct")

sendtouch.longtouch(520, 40, duration=3, struct_folder="struct")



#%timeit sendtouch.touch_df(df_click1 ,struct_folder="struct real")

# 109 ms ± 4.62 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

#%timeit subprocess.run('adb shell input tap 50 50')

# 197 ms ± 1.54 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

Tested against Windows 10 / Python 3.9.13 / BlueStacks 5

It should also work with any rooted Android device, the only problem might be the "bluestacks_divider".

https://stackoverflow.com/a/73733261/15096247

But changing the code (if necessary) shouldn't be a big thing.

Since my cell phone is not rooted, and I have no intention of rooting it, I cannot test the module against a physical Android device. (I would be grateful for any feedback)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sendevent_touch-0.11.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

sendevent_touch-0.11-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file sendevent_touch-0.11.tar.gz.

File metadata

  • Download URL: sendevent_touch-0.11.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for sendevent_touch-0.11.tar.gz
Algorithm Hash digest
SHA256 2a53e909903b197133b1abc8f3a1b0b0603a70406c487d309cf136d3cbe93cea
MD5 4fc4035108ae6bedc9b08eecaed1ec65
BLAKE2b-256 10c7f903484225d96c4e986c05d0d6ecf731b1468a01d5312d007a0e061d1815

See more details on using hashes here.

File details

Details for the file sendevent_touch-0.11-py3-none-any.whl.

File metadata

File hashes

Hashes for sendevent_touch-0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 7536f1e103e136bccc16972931becc4713e1183e0504f69bf02141242e03e6ee
MD5 33b4ba1a15a8fac11de515242c23389a
BLAKE2b-256 3ce3ebc51399cf69ab4a1ca7a651c316eb843767b4552eb8eb8dd386f350faba

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page