如何使用adb发送长按键事件?

时间:2012-06-21 16:42:23

标签: android adb

我可以使用类似的东西:

adb shell input keyevent 4

这将向我的设备发送一个“后退”按钮。我该如何发送长版?

由于

6 个答案:

答案 0 :(得分:21)

您可以尝试以下命令:

adb shell input touchscreen swipe 170 187 170 187 2000

您在屏幕上的申请位置是 170,187;延迟时间是2000(ms);

长按HOME键:

adb shell sendevent /dev/input/event2 1 172 1
adb shell sendevent /dev/input/event2 0  0 0
timeout 1
adb shell sendevent /dev/input/event2 1 172 0
adb shell sendevent /dev/input/event2 0  0 0

您可以转到 cmd 并输入 adb shell getevent |找到“event2”;长按 HOME 键可查看更多信息。

答案 1 :(得分:11)

自Android 4.4中this commit起,就可以使用:

adb shell input keyevent --longpress KEYCODE_L

This other commit进一步改善了行为。

答案 2 :(得分:1)

当您想要删除某些内容或重复某些事件或只输入大量数字时,您可以使用如下代码。它会模仿键盘上的 longpress

adb shell input keyevent KEYCODE_FORWARD_DEL KEYCODE_FORWARD_DEL KEYCODE_FORWARD_DEL //delete 3 times


adb shell input keyevent KEYCODE_1 KEYCODE_1 KEYCODE_1 //input value '111'

您可以无限制地重复活动或输入内容,就像按键上的Longpress一样。这是一回事。您可以定义自己的longpass和时间

答案 3 :(得分:0)

This link讨论了类似的问题,但有问题的设备(Nexus One设备)将菜单/ home / back / search按钮作为触摸屏的一部分,而非物理按键。

This other one似乎更多内联注入物理键输入,但需要访问设备驱动程序的* .kl文件以确定设备,类型,键码,值按和值 - 发布该特定设备的代码。

然而,两者之间的共同联系似乎是

adb shell sleep n

其中n是按下持续时间的长度(以秒为单位)。

希望这可能有用。

答案 4 :(得分:-1)

好吧,this developer link显示密码是128,我已经测试了,但没有预期的结果

您可以查看this链接和this链接。他们展示了如何找到它。

答案 5 :(得分:-1)

这可能为时已晚,无法回答,但肯定会帮助其他人。

请使用以下cmd来实现长按。

adb shell输入keyevent 5 sleep 5