我想发送“CTRL + W”到Chrome的Android版关闭活动标签页。我尝试了很多东西,但没有成功从终端实现它。 (如果我连接USB键盘与OTG,我可以用Ctrl + W关闭标签)模拟亚行终端按键组合
首先,我不想为此写一个应用程序,我只想要一个shell命令在Tasker中使用它。
我读的地方,来实现这一(CTRL + W的按键),我有模拟按键这样的:
按住Ctrl键
按住w
瓦特
最多CTRL
并从终端实现这一点,似乎我必须使用“sendevent”。
我可以使用“sendevent”模拟所有硬件按键,但无法模拟正常按键。
例如,要向下和向上的POWER键:
sendevent /dev/input/event1 1 116 1
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 1 116 0
sendevent /dev/input/event1 0 0 0
我用这个命令,但我不能使用此命令发送普通键。 (例如a,b,c等)
event1是gpio-keys,所以我使用它。所有其他输入事件都是传感器,一个是充电驱动器。 (max77693-MUIC)
的 “getevent -p” 输出说:
add device 1: /dev/input/event9
name: "compass_sensor"
events:
REL (0002): 0000 0001 0002 0003 0004 0005 0006 0007
0008 0009
input props:
<none>
add device 2: /dev/input/event6
name: "barometer_sensor"
events:
REL (0002): 0000 0001 0002
input props:
<none>
add device 3: /dev/input/event5
name: "light_sensor"
events:
REL (0002): 0000 0001 0002 0009
input props:
<none>
add device 4: /dev/input/event4
name: "proximity_sensor"
events:
ABS (0003): 0019 : value 1, min 0, max 1, fuzz 0, flat 0, resolution 0
input props:
<none>
add device 5: /dev/input/event3
name: "gyro_sensor"
events:
REL (0002): 0003 0004 0005
input props:
<none>
could not get driver version for /dev/input/mice, Not a typewriter
add device 6: /dev/input/event7
name: "Midas_WM1811 Midas Jack"
events:
KEY (0001): 0072 0073 00e2
SW (0005): 0002 0004
input props:
<none>
add device 7: /dev/input/event1
name: "gpio-keys"
events:
KEY (0001): 0072 0073 0074 00ac
input props:
<none>
add device 8: /dev/input/event0
name: "max77693-muic"
events:
KEY (0001): 0072 0073 00a3 00a4 00a5
input props:
<none>
add device 9: /dev/input/event8
name: "sec_touchkey"
events:
KEY (0001): 008b 009e
LED (0011): 0008
input props:
<none>
add device 10: /dev/input/event2
name: "sec_touchscreen"
events:
ABS (0003): 002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 0
0030 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
0031 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
0032 : value 0, min 0, max 30, fuzz 0, flat 0, resolution 0
0035 : value 0, min 0, max 719, fuzz 0, flat 0, resolution 0
0036 : value 0, min 0, max 1279, fuzz 0, flat 0, resolution 0
0039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
003c : value 0, min -90, max 90, fuzz 0, flat 0, resolution 0
003d : value 0, min 0, max 1, fuzz 0, flat 0, resolution 0
input props:
INPUT_PROP_DIRECT
而且我GPIO,按键布局文件 “/system/usr/keylayout/gpio-keys.kl” 像这样的:
key 115 VOLUME_UP WAKE
key 114 VOLUME_DOWN WAKE
key 116 POWER WAKE
key 172 HOME WAKE
我可以把所有正常的KeyEvents有:
"input keyevent KEYCODE_X"
,并发送多个:
"input keyevent KEYCODE_X KEYCODE_Y"
你应该觉得还可以是这样的:
"input keyevent KEYCODE_CTRL_LEFT KEYCODE W"
但立刻的keyEvent下来了,我不能用它来发送CTRL + W组合。
我知道,答案应该是“sendevent”。但我找不到。
我也试图加入一些假钥匙进入这样的按键布局文件:
key 115 VOLUME_UP WAKE
key 114 VOLUME_DOWN WAKE
key 116 POWER WAKE
key 172 HOME WAKE
key 19 Q
我重新启动手机,然后尝试:
sendevent /dev/input/event1 1 19 1
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 1 19 0
sendevent /dev/input/event1 0 0 0
但它从不写“Q”成任何文本框。
请帮助,谢谢你的帮助。
两年后解决方案,谢谢。我试过了,效果很好。 – Yusuf 2016-06-14 18:52:05