Skip to content

williamfzc/whenconnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

whenconnect

English README

Maintainability PyPI version Downloads

when your android connected, do sth :)

目标

提供一个简洁方便的方案以解决设备连接与断开时的监听工作,例如安装应用、启动应用、杀死进程,或是定制任何你希望的。

如果你在使用linux,你可能更喜欢 ud4d :)

使用

基本用法

如果你希望,在设备123456F成功连接电脑后执行函数A,你只需要:

from whenconnect import when_connect


def A(device):
    print('call function A', device)

# 事件注册
when_connect(device=['123456F'], do=A)

这样做之后,在你的程序执行时whenconnect将会同步检测123456F是否已经连接上;如果连接上,将把设备ID传入函数A并执行它:

call function A 123456F

当然,你也可以选择响应所有设备:

when_connect(device='any', do=A)

这样做之后,一旦新增了android设备都会执行函数A并传入连接上的设备id。

同样的,whenconnect也支持当设备断开时的场景,你只需要:

from whenconnect import when_disconnect


def A(device):
    print('call function A', device)

# 事件注册
when_disconnect(device=['123456F'], do=A)

获取当前设备与任务

whenconnect也提供了API以便在程序任意位置获取到当前的设备与任务注册状态:

from whenconnect import get_devices, get_current_task


device_list = get_devices()
print(device_list)
# ['123456F']

task_dict = get_current_task()
print(task_dict)
# {'any': {'connect': {<function normal_thing at 0x1033dad08>}, 'disconnect': {<function lose_connect at 0x1068d5b70>}}, 'specific': {'123': {'connect': {<function special_thing at 0x101dc8ea0>}}, 'def456': {'connect': {<function special_thing at 0x101dc8ea0>}}}}

实际使用例子

如果你只是单纯希望它单独作为一个长期的监听模块存在,只需要让你的程序保持工作即可:

  • 在末尾加入死循环
  • 嵌入到服务器
  • ...

基于whenconnect,你可以自由定制你需要的场景。例如,希望在设备插入后每五秒钟查看一次设备信息:

from whenconnect import when_connect
import os
import threading


def check_device_info(device):
    cmd = 'adb -s {} shell getprop ro.product.model'.format(device)
    device_model = os.popen(cmd).read()
    print(device_model)

    global timer
    timer = threading.Timer(5, lambda: check_device_info(device))
    timer.start()

# 事件注册
when_connect(device='any', do=check_device_info)

API

whenconnect只提供了为数不多的API:

  • 连接设备时
  • 断开设备时
  • 获取当前已连接的设备列表
  • 获取当前已注册的任务

可直接阅读api.py了解实现细节,或参考demo.py使用。

安装

pip install whenconnect
  • Only tested on python3.
  • and ADB installed.

License

MIT

About

when your android connected, do sth :)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages