如何为adb shell input keyevent --longpress 23命令设置长按时长?
解决ADB长按KeyEvent仅触发普通点击的问题
adb shell input keyevent --longpress参数的长按时长是系统固定的(一般约500ms),无法直接通过该命令调整时长。要实现自定义时长的长按,你可以通过sendevent命令模拟完整的按键按下-等待-松开流程,具体步骤如下:
确定目标输入设备节点
先执行以下命令列出所有输入设备,找到对应按键输入的设备路径(比如/dev/input/event1):adb shell getevent -lp输出中找包含
KEY_DPAD_DOWN(对应keycode 23)的设备,记录其eventX编号。模拟自定义时长的长按
以长按2秒为例,执行以下一组命令:# 发送按键按下事件 adb shell sendevent /dev/input/eventX 1 23 1 # 发送同步事件,通知系统状态变更 adb shell sendevent /dev/input/eventX 0 0 0 # 等待自定义时长(这里是2秒,可修改为任意数值,比如sleep 5就是5秒) adb shell sleep 2 # 发送按键松开事件 adb shell sendevent /dev/input/eventX 1 23 0 # 再次发送同步事件 adb shell sendevent /dev/input/eventX 0 0 0将命令中的
eventX替换为你第一步找到的实际设备节点编号即可。注意事项
- 部分设备可能需要ROOT权限才能正常使用
sendevent命令; - 如果找不到对应设备节点,可尝试更换USB调试模式为“仅充电”或“文件传输”后重新执行
getevent命令; sleep后的数值单位为秒,支持小数(比如sleep 0.8就是800ms)。
- 部分设备可能需要ROOT权限才能正常使用
内容的提问来源于stack exchange,提问作者Red Cape
相关产品推荐
相关产品推荐

