HID Events
Overview
- All functions in the HID events module require activating HID via the EasyClick HID control host before they can be called
- For HID control host usage, see Advanced — HID control host: HID control host or use the HID mini host
- The HID events module uses the
hidEventprefix, e.g.hidEvent.click()
HID Network Mode Functions
setHidCenter Set HID Control Host Address
- Used in network mode
- Set the HID control host address
- Requires EC Android 9.15.0+
- @param hidCenterUrl URL where the HID control host is running
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false }
return true;}
main();initUsbDevice Initialize HID Device
- Used in network mode
- Initialize the HID device
- Requires EC Android 9.15.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false }
return true;}
main();checkFirstPoint Calibrate HID Coordinates
- Used in network mode; deprecated — HID v2.0.0+ does not require coordinate calibration
- Call after
initUsbDevice - If the HID control host is v2.0+, do not call this function — click and other actions work without calibration
- Requires EC Android 9.15.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } // Start calibrating screen coordinates // If the HID control host is v2.0+, do not call this function let po = hidEvent.checkFirstPoint() if (po == null) { logd("Coordinate calibration succeeded") } else { loge("Coordinate calibration failed:" + init); return false } return true;}
main();closeUsbDevice Close HID Device
- Used in network mode
- Close the HID device
- This stops communication between the HID control host and the device — call when appropriate
- Requires EC Android 9.15.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false }
return true;}
main();clickPoint Click Coordinates
- Used in network mode
- Requires EC Android 9.15.0+
- @param x x coordinate
- @param y y coordinate
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return } // Click at screen corner coordinates let click = hidEvent.clickPoint(device.getScreenWidth(), device.getScreenHeight()) if (click == null) { logd("Click succeeded") } else { console.log("Click failed" + click) } sleep(1000) let doub = hidEvent.doubleClickPoint(300, 400) if (doub == null) { logd("Double-click succeeded") } else { console.log("Double-click failed" + doub) }
sleep(1000) let ps = hidEvent.press(600, 800, 2000) if (ps == null) { logd("Long press succeeded") } else { console.log("Long press failed" + ps) }
sleep(1000) let ps1 = hidEvent.press(device.getScreenWidth(), device.getScreenHeight(), 2000) if (ps1 == null) { logd("Long press succeeded") } else { console.log("Long press failed" + ps1) }
mtouch()
}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false }
return true;}
function mtouch() { let data = [ {"action": 0, "x": 250, "y": 1800, "pointer": 1, "delay": 100}, {"action": 2, "x": 250, "y": 1700, "pointer": 1, "delay": 100}, {"action": 2, "x": 300, "y": 1700, "pointer": 1, "delay": 100}, {"action": 2, "x": 330, "y": 1650, "pointer": 1, "delay": 200}, {"action": 2, "x": 400, "y": 1650, "pointer": 1, "delay": 100}, {"action": 1, "x": 600, "y": 400, "pointer": 1, "delay": 100} ]
let tou = hidEvent.multiTouch(data, 1000) if (tou == null) { logd("Multi-touch succeeded") } else { loge("Multi-touch failed:" + tou); return false }}
main();doubleClickPoint Double-Click Coordinates
- Requires EC Android 9.15.0+
- @param x x coordinate
- @param y y coordinate
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return } // Click at screen corner coordinates let click = hidEvent.clickPoint(device.getScreenWidth(), device.getScreenHeight()) if (click == null) { logd("Click succeeded") } else { console.log("Click failed" + click) } sleep(1000) let doub = hidEvent.doubleClickPoint(300, 400) if (doub == null) { logd("Double-click succeeded") } else { console.log("Double-click failed" + doub) }
sleep(1000) let ps = hidEvent.press(600, 800, 2000) if (ps == null) { logd("Long press succeeded") } else { console.log("Long press failed" + ps) }
sleep(1000) let ps1 = hidEvent.press(device.getScreenWidth(), device.getScreenHeight(), 2000) if (ps1 == null) { logd("Long press succeeded") } else { console.log("Long press failed" + ps1) }
mtouch()
}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false }
return true;}
function mtouch() { let data = [ {"action": 0, "x": 250, "y": 1800, "pointer": 1, "delay": 100}, {"action": 2, "x": 250, "y": 1700, "pointer": 1, "delay": 100}, {"action": 2, "x": 300, "y": 1700, "pointer": 1, "delay": 100}, {"action": 2, "x": 330, "y": 1650, "pointer": 1, "delay": 200}, {"action": 2, "x": 400, "y": 1650, "pointer": 1, "delay": 100}, {"action": 1, "x": 600, "y": 400, "pointer": 1, "delay": 100} ]
let tou = hidEvent.multiTouch(data, 1000) if (tou == null) { logd("Multi-touch succeeded") } else { loge("Multi-touch failed:" + tou); return false }}
main();press Long Press Coordinates
- Used in network mode
- Long press at coordinates
- Requires EC Android 9.15.0+
- @param x x coordinate
- @param y y coordinate
- @param delay Hold duration in milliseconds
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return } // Click at screen corner coordinates let click = hidEvent.clickPoint(device.getScreenWidth(), device.getScreenHeight()) if (click == null) { logd("Click succeeded") } else { console.log("Click failed" + click) } sleep(1000) let doub = hidEvent.doubleClickPoint(300, 400) if (doub == null) { logd("Double-click succeeded") } else { console.log("Double-click failed" + doub) }
sleep(1000) let ps = hidEvent.press(600, 800, 2000) if (ps == null) { logd("Long press succeeded") } else { console.log("Long press failed" + ps) }
sleep(1000) let ps1 = hidEvent.press(device.getScreenWidth(), device.getScreenHeight(), 2000) if (ps1 == null) { logd("Long press succeeded") } else { console.log("Long press failed" + ps1) }
mtouch()
}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false }
return true;}
function mtouch() { let data = [ {"action": 0, "x": 250, "y": 1800, "pointer": 1, "delay": 100}, {"action": 2, "x": 250, "y": 1700, "pointer": 1, "delay": 100}, {"action": 2, "x": 300, "y": 1700, "pointer": 1, "delay": 100}, {"action": 2, "x": 330, "y": 1650, "pointer": 1, "delay": 200}, {"action": 2, "x": 400, "y": 1650, "pointer": 1, "delay": 100}, {"action": 1, "x": 600, "y": 400, "pointer": 1, "delay": 100} ]
let tou = hidEvent.multiTouch(data, 1000) if (tou == null) { logd("Multi-touch succeeded") } else { loge("Multi-touch failed:" + tou); return false }}
main();multiTouch Multi-Touch
- Used in network mode
- Multi-touch
- Requires EC Android 9.15.0+
- Touch parameters: action — typically 0 = down, 1 = up, 2 = move
- x: X coordinate
- y: Y coordinate
- pointer: finger index — 1, 2, 3, etc.
- delay: delay before this action in milliseconds
- @param touch1
Touch point array for the first finger, e.g.:
[{"action":0,"x":1,"y":1,"pointer":1,"delay":20},{"action":2,"x":1,"y":1,"pointer":1,"delay":20}] - @param timeout Multi-touch timeout in milliseconds
- @return
{boolean}
function main() { let i = initHid() if (!i) { return } // Click at screen corner coordinates let click = hidEvent.clickPoint(device.getScreenWidth(), device.getScreenHeight()) if (click == null) { logd("Click succeeded") } else { console.log("Click failed" + click) } sleep(1000) let doub = hidEvent.doubleClickPoint(300, 400) if (doub == null) { logd("Double-click succeeded") } else { console.log("Double-click failed" + doub) }
sleep(1000) let ps = hidEvent.press(600, 800, 2000) if (ps == null) { logd("Long press succeeded") } else { console.log("Long press failed" + ps) }
sleep(1000) let ps1 = hidEvent.press(device.getScreenWidth(), device.getScreenHeight(), 2000) if (ps1 == null) { logd("Long press succeeded") } else { console.log("Long press failed" + ps1) }
mtouch()
}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") sleep(3000) hidEvent.closeUsbDevice(); let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false }
return true;}
function mtouch() { let data = [ {"action": 0, "x": 250, "y": 1800, "pointer": 1, "delay": 100}, {"action": 2, "x": 250, "y": 1700, "pointer": 1, "delay": 100}, {"action": 2, "x": 300, "y": 1700, "pointer": 1, "delay": 100}, {"action": 2, "x": 330, "y": 1650, "pointer": 1, "delay": 200}, {"action": 2, "x": 400, "y": 1650, "pointer": 1, "delay": 100}, {"action": 1, "x": 600, "y": 400, "pointer": 1, "delay": 100} ]
let tou = hidEvent.multiTouch(data, 1000) if (tou == null) { logd("Multi-touch succeeded") } else { loge("Multi-touch failed:" + tou); return false }}
main();swipe Swipe
- Used in network mode
- Swipe with built-in randomization
- Requires EC Android 9.36.0+
- @param x Start x
- @param y Start y
- @param ex End x
- @param ey End y
- @param delay Hold duration in milliseconds
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } hidEvent.swipe(100, 200, 600, 800, 2000) return true;}
main();home Home
- Used in network mode
- Requires EC Android 10.21.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let r = hidEvent.home() logd(r) return true;}
main();back Back
- Used in network mode
- Requires EC Android 10.21.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let r = hidEvent.back() logd(r) return true;}
main();openNotification Open Notification Shade
- Used in network mode
- Requires EC Android 10.21.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let r = hidEvent.openNotification() logd(r) return true;}
main();recentApps Recent Apps
- Used in network mode
- Requires EC Android 10.21.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { // First set the LAN address of the HID program; you can also map it to the public network with FRP and use the public address hidEvent.setHidCenter("http://192.168.2.14:8988") hidEvent.closeUsbDevice(); sleep(3000) let init = hidEvent.initUsbDevice() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let r = hidEvent.recentApps() logd(r) return true;}
main();HID USB Mode Functions
initUsbDeviceByUsb Initialize HID Device
- [USB mode] Initialize the HID device
- Requires EC Android 10.6.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { let init = hidEvent.initUsbDeviceByUsb() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let swipe = hidEvent.swipeByUsb(100, 200, 600, 800, 2000) logd("swipe result " + swipe) return true;}
main();clickPointByUsb Click Coordinates
- [USB mode] Click coordinates
- Requires EC Android 10.6.0+
- @param x x coordinate
- @param y y coordinate
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { let init = hidEvent.initUsbDeviceByUsb() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let result = hidEvent.clickPointByUsb(600, 800) logd(" result " + result) return true;}
main();doubleClickPointByUsb Double-Click Coordinates
- [USB mode] Double-click coordinates
- Requires EC Android 10.6.0+
- @param x x coordinate
- @param y y coordinate
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { let init = hidEvent.initUsbDeviceByUsb() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let result = hidEvent.doubleClickPointByUsb(600, 800) logd(" result " + result) return true;}
main();pressByUsb Long Press Coordinates
- [USB mode] Long press coordinates
- Requires EC Android 10.6.0+
- @param x x coordinate
- @param y y coordinate
- @param delay Hold duration in milliseconds
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { let init = hidEvent.initUsbDeviceByUsb() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let result = hidEvent.pressByUsb(600, 800, 5000) logd(" result " + result) return true;}
main();multiTouchByUsb Multi-Touch
- [USB mode] Multi-touch
- Requires EC Android 10.6.0+
- Touch parameters: action — typically 0 = down, 1 = up, 2 = move
- x: X coordinate
- y: Y coordinate
- pointer: finger index — 1, 2, 3, etc.
- delay: delay before this action in milliseconds; use more than 40 ms to avoid coordinate drift
- @param touch1 Touch point array for the first finger, e.g.:
[{"action":0,"x":1,"y":1,"pointer":1,"delay":30},{"action":2,"x":1,"y":1,"pointer":1,"delay":30}] - @param timeout Multi-touch timeout in milliseconds
- @return
{boolean}
function main() { let i = initHid() if (!i) { return }}
function mtouch() { let data = [ {"action": 0, "x": 250, "y": 1800, "pointer": 1, "delay": 100}, {"action": 2, "x": 250, "y": 1700, "pointer": 1, "delay": 100}, {"action": 2, "x": 300, "y": 1700, "pointer": 1, "delay": 100}, {"action": 2, "x": 330, "y": 1650, "pointer": 1, "delay": 200}, {"action": 2, "x": 400, "y": 1650, "pointer": 1, "delay": 100}, {"action": 1, "x": 600, "y": 400, "pointer": 1, "delay": 100} ]
let tou = hidEvent.multiTouchByUsb(data, 1000) if (tou == null) { logd("Multi-touch succeeded") } else { loge("Multi-touch failed:" + tou); return false }}
function initHid() { let init = hidEvent.initUsbDeviceByUsb() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } mtouch(); return true;}
main();swipeByUsb Swipe
- [USB mode] Swipe
- Requires EC Android 10.6.0+
- @param x Start x
- @param y Start y
- @param ex End x
- @param ey End y
- @param delay Hold duration in milliseconds
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { let init = hidEvent.initUsbDeviceByUsb() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let swipe = hidEvent.swipeByUsb(100, 200, 600, 800, 2000) logd("swipe result " + swipe) return true;}
main();homeByUsb Home
- Used in USB mode
- Requires EC Android 10.21.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { let init = hidEvent.initUsbDeviceByUsb() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let r = hidEvent.homeByUsb() logd(r) return true;}
main();backByUsb Back
- Used in USB mode
- Requires EC Android 10.21.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { let init = hidEvent.initUsbDeviceByUsb() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let r = hidEvent.backByUsb() logd(r) return true;}
main();openNotificationByUsb Open Notification Shade
- Used in USB mode
- Requires EC Android 10.21.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { let init = hidEvent.initUsbDeviceByUsb() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let r = hidEvent.openNotificationByUsb() logd(r) return true;}
main();recentAppsByUsb Recent Apps
- Used in USB mode
- Requires EC Android 10.21.0+
- @return
{string}null on success; otherwise an error message
function main() { let i = initHid() if (!i) { return }}
function initHid() { let init = hidEvent.initUsbDeviceByUsb() if (init == null) { logd("HID device initialized successfully") } else { loge("Initialization failed:" + init); return false } let r = hidEvent.recentAppsByUsb() logd(r) return true;}
main();