国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android sendevent/getevent 用法

2019-11-08 00:23:51
字體:
供稿:網(wǎng)友

getevent&sendevent 是Android系統(tǒng)下的一個工具,可以 模擬 多種按鍵和觸屏操作,產(chǎn)生的是raw event,raw event經(jīng)過event hub處理產(chǎn)生最終的gesture事件。

這兩個命令的源碼在system/core/toolbox/下,sendevent.c getevent.c

關(guān)于event設(shè)備的獲取,在 /PRoc/bus/input/devices 下面:

$ adb shell cat /proc/bus/input/devices

=========================

一、getevent :

獲取getevent 的使用方法 : getevent -h

getevent 監(jiān)控當(dāng)前的事件, 鼠標(biāo)事件, 按鍵事件, 拖動滑動 以及其他類型的event事件;

使用getevent 獲得/dev/input/eventX設(shè)備 匯報的事件,這個命令會輸出所有event設(shè)備的 基本信息,如下:

shell@anzhen4_mrd7:/ $ geteventadd device 1: /dev/input/event6 name: "accel"add device 2: /dev/input/event5 name: "goodix_ts"add device 3: /dev/input/event0 name: "Power Button"add device 4: /dev/input/event1 name: "Video Bus"add device 5: /dev/input/event4 name: "baytrailaudio Intel MID Audio Jack"add device 6: /dev/input/event2 name: "gpio-lesskey"add device 7: /dev/input/event3 name: "dollar_cove_power_button"

表明系統(tǒng)有 7個event設(shè)備 ;


在我的android設(shè)備里,event2 代表 音量加減按鍵;

shell@anzhen4_mrd7:/ $ getevent /dev/input/event2

點擊 音量減按鍵 :

按鍵 按下的log :

0001 007200000001 0000 0000 00000000

按鍵 彈起的log : 0001 0072 00000000 0000 0000 00000000

其中/dev/input/event2 是device的名字 ;

0001 是type;

0072 是鍵碼;

最后一個根據(jù)type不同 而不同;

比如上面的 00000001 就是按下 音量鍵的keydown,00000000 是松開 音量鍵的keyup;

具體的type,code,value的定義 可以在源碼/frameworks/base/core/java/android/view/KeyEvent.java中找到;

=============================

二、sendevent :

命令格式 : sendevent [device] [type] [code] [value]

需要注意的是在 getevent 中code顯示的是十六進制, 而sendevent 中需要用 十進制;

1、模擬發(fā)送一個 音量加鍵:

按下 正真的 音量加 按鍵:

/dev/input/event3: 0001 0073 00000001/dev/input/event3: 0000 0000 00000000

松開 正真的 音量加

/dev/input/event3: 0001 0073 00000000/dev/input/event3: 0000 0000 00000000

———— 模擬 按鍵 ————

發(fā)送 按下 音量加 :

shell@anzhen4_mrd7:/ # sendevent /dev/input/event3 1 115 1 shell@anzhen4_mrd7:/ # sendevent /dev/input/event3 0 0 0

發(fā)送 松開 音量加 : shell@anzhen4_mrd7:/ # sendevent /dev/input/event3 1 115 0 shell@anzhen4_mrd7:/ # sendevent /dev/input/event3 0 0 0


type, code, value的定義可參看kernel/include/linux/input.h

type如下定義 [html] view plaincopy

/* * Event types */ #define EV_SYN 0x00 #define EV_KEY 0x01 #define EV_REL 0x02 #define EV_ABS 0x03 #define EV_MSC 0x04 #define EV_SW 0x05 #define EV_LED 0x11 #define EV_SND 0x12 #define EV_REP 0x14 #define EV_FF 0x15 #define EV_PWR 0x16 #define EV_FF_STATUS 0x17 #define EV_MAX 0x1f #define EV_CNT (EV_MAX+1)

一般來說,常用的是EV_KEY, EV_REL, EV_ABS, EV_SYN

分別對應(yīng)keyboard, 相對坐標(biāo), 絕對坐標(biāo), 同步事件

EV_SYN則表示一組完整事件已經(jīng)完成,需要處理,EV_SYN的code定義事件分發(fā)的類型

EV_KEY的code比較多,這里就不列出來了,可參照input.h

EV_REL對應(yīng)的code

三.input keyevent

如果想模擬按鍵,send event用起來比較繁瑣,可以用input keyevent代替

下面是input keyevent幾個比較常用的用法:

input keyevent 3 // Homeinput keyevent 4 // Backinput keyevent 19 //Upinput keyevent 20 //Downinput keyevent 21 //Leftinput keyevent 22 //Rightinput keyevent 23 //Select/Okinput 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事件 值為1sendevent /dev/input/event1: 0003 0018 00000000 // ABS pressure事件sendevent /dev/input/event1: 0001 014a 00000000 // BTN touch事件 值為0sendevent /dev/input/event1: 0000 0000 00000000 // sync事件
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵丘县| 开封县| 石屏县| 丹棱县| 浦东新区| 吉首市| 昌图县| 靖远县| 桐柏县| 南通市| 齐齐哈尔市| 永州市| 剑阁县| 铜梁县| 宜宾县| 鄂托克旗| 遵化市| 普安县| 寿宁县| 镇宁| 京山县| 广灵县| 万山特区| 天长市| 达孜县| 怀集县| 林口县| 高雄市| 安溪县| 镇安县| 五家渠市| 广南县| 社旗县| 平原县| 长丰县| 永嘉县| 达孜县| 台中市| 大同市| 抚顺县| 洪湖市|