Android sendevent/getevent 用法
源文;https://blog.csdn.net/kickxxx/article/details/7482392
getevent/sendevent源碼
這兩個(gè)命令的源碼在system/core/toolbox/下,sendevent.c getevent.c
getevent
使用getevent獲得/dev/input/eventX設(shè)備匯報(bào)的事件,這個(gè)命令還會(huì)輸出所有event設(shè)備的基本信息,如下:
add device 1: /dev/input/event1
? name:???? "mxc_ts"
add device 2: /dev/input/event0
? name:???? "mxckpd"
表明系統(tǒng)有兩個(gè)event設(shè)備,分別對(duì)應(yīng)著input設(shè)備touchscreen,keyboard
?
Android可以使用sendevent來(lái)模擬觸屏,鍵盤以及其他類型的event事件,
sendevent /dev/input/eventX type code value
/dev/input/eventX 對(duì)應(yīng)一個(gè)event設(shè)備,可以通過(guò)getevent獲得可用的event設(shè)備
type, code, value的定義可參看kernel/include/linux/input.h
?
type如下定義
?
一般來(lái)說(shuō),常用的是EV_KEY, EV_REL, EV_ABS, EV_SYN
?
分別對(duì)應(yīng)keyboard, 相對(duì)坐標(biāo), 絕對(duì)坐標(biāo), 同步事件
?
EV_SYN則表示一組完整事件已經(jīng)完成,需要處理,EV_SYN的code定義事件分發(fā)的類型
EV_SYN對(duì)應(yīng)的code如下
?
EV_KEY的code比較多,這里就不列出來(lái)了,可參照input.h
?
?
EV_REL對(duì)應(yīng)的code
EV_ABS對(duì)應(yīng)的code
?
?
input keyevent
?
如果想模擬按鍵,send event用起來(lái)比較繁瑣,可以用input keyevent代替
下面是input keyevent幾個(gè)比較常用的用法:
?
input keyevent 3??? // Home
input keyevent 4??? // Back
input keyevent 19? //Up
input keyevent 20? //Down
input keyevent 21? //Left
input keyevent 22? //Right
input keyevent 23? //Select/Ok
input keyevent 24? //Volume+
input keyevent 25? // Volume-
input keyevent 82? // Menu 菜單
?
用senevent 模擬觸屏事件
sendevent /dev/input/event1 0003 0000 0000015e??? // ABS x 坐標(biāo)
sendevent /dev/input/event1: 0003 0001 000000df??? // ABS y 坐標(biāo)
sendevent /dev/input/event1: 0001 014a 00000001 ? // BTN touch事件 值為1
sendevent /dev/input/event1: 0003 0018 00000000?? // ABS pressure事件
sendevent /dev/input/event1: 0001 014a 00000000?? // BTN touch事件 值為0
sendevent /dev/input/event1: 0000 0000 00000000?? // sync事件
轉(zhuǎn)載于:https://www.cnblogs.com/senior-engineer/p/9267311.html
總結(jié)
以上是生活随笔為你收集整理的Android sendevent/getevent 用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: http请求头中Origin的作用及危害
- 下一篇: Android学习--持久化(三) SQ