device_drag_drop
Drag-and-drop on an Android device: hold at (x1,y1) for holdMs to grab, then move to (x2,y2) over durationMs. Distinct from device_swipe (no hold — scroll-style) and device_long_press (no motion — context menus). Use for app-icon reorder, drag-into-folder, slide gestures that need a deliberate grab. Coordinates are PHYSICAL pixels (from page_source bounds).Pass input="hid" to require the virtual touchscreen: the gesture then reaches the app as real kernel input and fails loudly instead of silently falling back to injected input. That strict path used to be device_uhid_drag_drop, which stays callable under its old name.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x1 | Yes | Start X in physical pixels | |
| x2 | Yes | End X in physical pixels | |
| y1 | Yes | Start Y in physical pixels | |
| y2 | Yes | End Y in physical pixels | |
| udid | Yes | Device serial number (UDID) | |
| input | No | Input path. 'auto' (default) prefers the virtual touchscreen and falls back to injected input. 'hid' requires the virtual touchscreen and fails if the device does not provide one — use it when the gesture must be real kernel input or must fail loudly. | |
| holdMs | No | Hold-in-place duration before motion in ms (default: 500) | |
| durationMs | No | Motion duration from start to end in ms (default: 400) |