- ADB client (connect, tap, swipe, screencap, app control) - Vision module (in-memory screenshot + OpenCV template matching) - Action loader (auto-discovers .py files in actions/) - Engine (screenshot → detect → act loop with YAML playbook) - 12 built-in actions: tap, click, wait, swipe, find, find_and_click, wait_until, click_seq, keyevent, app, log - Example custom action template - Debug screenshot tool for template creation - Detailed plan.md with 20 actions across 9 phases - Sample playbook with 10 steps
22 lines
484 B
Python
22 lines
484 B
Python
"""Action: keyevent — send Android key event."""
|
|
|
|
|
|
class Action:
|
|
name = "keyevent"
|
|
|
|
KEYS = {
|
|
"back": 4,
|
|
"home": 3,
|
|
"menu": 82,
|
|
"enter": 66,
|
|
"space": 62,
|
|
"esc": 111,
|
|
}
|
|
|
|
def run(self, ctx, params):
|
|
key = params.get("key", params.get("keycode", "back"))
|
|
if isinstance(key, str):
|
|
key = self.KEYS.get(key.lower(), 4)
|
|
ctx["adb"].keyevent(key)
|
|
ctx["log"].info("keyevent(%d)", key)
|