![如何捕獲android系統(tǒng)鼠標(biāo)軌跡值和鍵盤值_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/44cd2adc-2433-4121-b9e6-cddc6a52187d/44cd2adc-2433-4121-b9e6-cddc6a52187d1.gif)
![如何捕獲android系統(tǒng)鼠標(biāo)軌跡值和鍵盤值_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/44cd2adc-2433-4121-b9e6-cddc6a52187d/44cd2adc-2433-4121-b9e6-cddc6a52187d2.gif)
![如何捕獲android系統(tǒng)鼠標(biāo)軌跡值和鍵盤值_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/44cd2adc-2433-4121-b9e6-cddc6a52187d/44cd2adc-2433-4121-b9e6-cddc6a52187d3.gif)
![如何捕獲android系統(tǒng)鼠標(biāo)軌跡值和鍵盤值_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/44cd2adc-2433-4121-b9e6-cddc6a52187d/44cd2adc-2433-4121-b9e6-cddc6a52187d4.gif)
![如何捕獲android系統(tǒng)鼠標(biāo)軌跡值和鍵盤值_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/44cd2adc-2433-4121-b9e6-cddc6a52187d/44cd2adc-2433-4121-b9e6-cddc6a52187d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、CurrentVersionUpdatingHistoryVersionUpdatedContentDateEditor0.1創(chuàng)建文檔2010-7-16shuxh目錄一、找出設(shè)備中,我用的是什么event?2二、對(duì)input_event數(shù)據(jù)結(jié)構(gòu)的解釋31、code:42、type:43、value:5三、抓取event值的原理:51、打開event設(shè)備52、read設(shè)備53、判斷是什么事件64、保存您想要的鍵盤值,(相對(duì)/絕對(duì))x,y的值。65、鍵盤映射6四、如何在Android系統(tǒng)上使用程序,并抓到我們需要的值?6五、附錄key轉(zhuǎn)換表7、我由設(shè)備中,我用的是什么event?關(guān)于該設(shè)備打開的是
2、哪個(gè)event,我們可以通過命令,cat/proc/bus/input/devices來查看,執(zhí)行這個(gè)命令后,你會(huì)看到您的設(shè)備上有多少eventX。rootlenovo-desktop:#cat/proc/bus/input/devicesI:Bus=0019Vendor=0000Product=0001Version=0000N:Name="PowerButton"P:Phys=PNP0C0C/button/input0S:Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0U:Uniq=H: Han
3、dlers=kbdevent0B:EV=3B:KEY=100000000I: Bus=0019Vendor=0000Product=0001Version=0000N:Name="PowerButton"P:Phys=LNXPWRBN/button/input0S:Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1U:Uniq=H: Handlers=kbdevent1B:EV=3B:KEY=100000000I: Bus=0017Vendor=0001Product=0001Version=0100N:Name=&quo
4、t;Macintoshmousebuttonemulation"P:Phys=S:Sysfs=/devices/virtual/input/input2U:Uniq=H:Handlers=mouse0event2B:EV=7B:KEY=7000000000000B:REL=3I:Bus=0011Vendor=0001Product=0001Version=ab41N:Name="ATTranslatedSet2keyboard"P:Phys=isa0060/serio0/input0S:Sysfs=/devices/platform/i8042/serio0/in
5、put/input3U:Uniq=H: Handlers=kbdevent3B:EV=120013B:KEY=420000003803078f800d001feffffdfffeffffffffffffffffffffeB:MSC=10B:LED=7I: Bus=0003Vendor=17efProduct=600eVersion=0111N:Name="LenovoOpticalMouse"P:Phys=usb-0000:00:1d.1-1/input0S:Sysfs=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/in
6、put/input4U:Uniq=H:Handlers=mouse1event4B:EV=17B:KEY=7000000000000B:REL=103B:MSC=10我的ubunte系統(tǒng)上敲完這個(gè)命令后,能夠看到event。一event7,共8個(gè)設(shè)備。如上面紅色標(biāo)記,可以很快找出該設(shè)備對(duì)應(yīng)的輸入設(shè)備,以及對(duì)應(yīng)的eventX,跨入眼前視野的"LenovoOpticalMouse"這肯定是我鼠標(biāo)啊,用的牌子就是這個(gè)Lenovo,背面上寫著呢。二、對(duì)input_event數(shù)據(jù)結(jié)構(gòu)的解釋標(biāo)準(zhǔn)按鍵的編碼的定義在linux/input.h中structinput_eventstruct
7、timevaltime;/按鍵時(shí)間# u16type;類型,在下面有定義# u16code;/要模擬成什么按鍵# s32value;/是按下還是釋放);1、code:事件的代碼.如果事件的類型代碼是EV_KEY,該代碼code為設(shè)備鍵盤代碼.代碼植0127為鍵盤上的按鍵代碼,0x110-0x116為鼠標(biāo)上按鍵代碼,其中0x110(BTN_LEFT)為鼠標(biāo)左鍵,0x111(BTN_RIGHT)為鼠標(biāo)右鍵,0x112(BTN_MIDDLE)為鼠標(biāo)中鍵.如果事件的類型代碼是EV_REL,code值表示軌跡的類型.如指示鼠標(biāo)的X軸方向REL_X(代碼為0x00),指示鼠標(biāo)的Y軸方向REL_Y(代碼為0
8、x01),指示鼠標(biāo)中輪子方向REL_WHEEL(代碼為0x08).其它代碼含義請(qǐng)參看include/linux/input.h文件.2、type:EV_KEY,鍵盤EV_REL,相對(duì)坐標(biāo)(軌跡球)EV_ABS,絕對(duì)坐標(biāo)(鼠標(biāo))oOO/*# Eventtypes參考值# /# defineEV_SYN0x00# defineEV_KEY0x01/按鍵# defineEV_REL0x02/相對(duì)坐標(biāo)(軌跡球)# defineEV_ABS0x03/絕對(duì)坐標(biāo)(鼠標(biāo))#defineEV_MSC0x04/其他#defineEV_SW0x05#defineEVLED0x11/LED#defineEV_SND0
9、x12/聲音#defineEV_REP0x14/repeat#defineEV_FF0x15#defineEV_PWR0x16#defineEV_FF_STATUS0x17#defineEV_MAX0x1f#defineEV_CNT(EV_MAX+1)3、value:事件的值.如果事件的類型代碼是EV_KEY,當(dāng)按鍵按下時(shí)值為1,松開時(shí)值為0;如果事件的類型代碼是EV_REL,value的正數(shù)值和負(fù)數(shù)值分別代表兩個(gè)不同方向的值三、抓取event值的原理:對(duì)eventX進(jìn)彳fread/write來抓取event的各種信息;1、打開event設(shè)備event0_fd=open("/dev/
10、input/event0",O_RDWR);2、read設(shè)備rd=read(event0_fd,&event0,sizeof(structinput_event)*64);3、判斷是什么事件如果,(eventi.type=3&&eventi.code=0),為鼠標(biāo)位置的x坐標(biāo)值;(eventi.type=3&&eventi.code=1),為鼠標(biāo)位置的y坐標(biāo)值;如果,(eventi.type=1&&eventi.value=1),為按下key;(eventi.type=1&&eventi.value=0),為松開
11、key;如果,(eventi.type=其它事件(如軌跡球聲音控制.)具體見源碼。4、保存您想要的鍵盤值,(相對(duì)/絕對(duì))x,y的值5、鍵盤映射由于Android輸入處理經(jīng)過那兩次映射;1、事件碼(input.h定義的鍵盤值)>字符串;2、字符串>Android中java的UI程序中自定義的鍵盤key;由于有鍵盤映射關(guān)系,而我們想要的值是Android中java的Ui自定義值;為此我在代碼中自定義了一個(gè)數(shù)組,用來進(jìn)行事件碼和java的UI程序中自定義的鍵盤key進(jìn)行轉(zhuǎn)換。四、如何在Android系統(tǒng)上使用程序,并抓到我們需要的值?1、直接將編譯好的arm二進(jìn)制文件,使用adbpush
12、命令直接push到虛擬機(jī)或者真實(shí)的設(shè)備上面,push完后,保存在/data/目錄下2、進(jìn)入/data/目錄,直接執(zhí)行。假如工具名字叫:capture,則用./capture3、使用crtl+c終止程序或者kill-2(capture運(yùn)行的進(jìn)程號(hào))。注:只有采用以上兩種方法終止程序后,才能將我們需要保存的值,保存到/data/template.monkey文件中,否則只是個(gè)空文件4、如果沒有二進(jìn)制的arm執(zhí)行文件,那么則需要我們自己編譯,怎么編譯,這里就不講了五、附錄key轉(zhuǎn)換表keyEventkeycodeAndroidkeycodeKEYCODE_128KEYCODE_239KEYCODE_
13、3410KEYCODE_4511KEYCODE_5612KEYCODE_6713KEYCODE_7814KEYCODE_8915KEYCODE_91016KEYCODE_0117KEYCODE_Q1645KEYCODE_W1751KEYCODE_E1833KEYCODE_R1946KEYCODE_T2048KEYCODE_Y2153KEYCODE_U2249KEYCODE_I2337KEYCODE_O2443KEYCODE_P2544KEYCODE_A3029KEYCODE_S3147KEYCODE_D3232KEYCODE_F3334KEYCODE_G3435KEYCODE_H3536KEY
14、CODE_J3638KEYCODE_K3739KEYCODE_L3840KEYCODE_DEL1467KEYCODE_SHIFT_LEFT4259KEYCODEZ4454KEYCODE_X4552KEYCODEC4631KEYCODEV4750KEYCODEB4830KEYCODEN4942KEYCODEM5041KEYCODE.5256KEYCODE_ENTER2866KEYCODEALTLEFT5657KEYCODESYM12763KEYCODE_21577KEYCODE_SPACE5762KEYCODE_/5373KEYCODE_,5155KEYCODE_ALT_RIGHT10058KE
15、YCODE_CAMERA27KEYCODE_VOLUME_DOWN11425KEYCODE_VOLUME_UP11524KEYCODE_STAR11617KEYCODE_CALL2315KEYCODE_ENDCALL1076KEYCODE_HOME1023KEYCODE_MENU22982KEYCODE_BACK1584KEYCODE_POWER21726KEYCODE_DPAD_UP10319KEYCODE_DPAD_DOWN10820KEYCODE_DPAD_LEFT10521KEYCODE_DPAD_RIGHT10622KEYCODE_DPAD_CENTER23223KEYCODE_SO
16、FT_LEFT1KEYCODE_SOFT_RIGHT2KEYCODE_POUND18KEYCODE_CLEAR28KEYCODE_SHIFT_RIGHT60KEYCODE_TAB61KEYCODE_EXPLORER64KEYCODE_ENVELOPE65KEYCODE_GRAVE68KEYCODE_MINUS69KEYCODE_EQUALS70KEYCODELEFTBRACKET71KEYCODERIGHTBRACKET72KEYCODESEMICOLON74KEYCODEAPOSTROPHE75KEYCODE_SLASH76KEYCODE_NUM78KEYCODEHEADSETHOOK79KEYCODEPLUS81KEYCODENOTIFICATION83KEYCODESEARCH84KEYCODEM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- SMARCA2-ligand-12-3-methylazetidine-生命科學(xué)試劑-MCE-3446
- N-Methylcanadium-iodide-生命科學(xué)試劑-MCE-3917
- 3-Fluoro-4-hydroxymethyl-benzonitrile-d2-4-Cyano-2-fluorobenzyl-alcohol-d-sub-2-sub-生命科學(xué)試劑-MCE-3394
- 二零二五年度影視作品分紅協(xié)議書
- 二零二五年度紅磚新材料研發(fā)與應(yīng)用合作協(xié)議書
- 2025年度電影項(xiàng)目演員聘用合同模板
- 二零二五年度企業(yè)薪資補(bǔ)充協(xié)議及員工住房補(bǔ)貼
- 2025年度綠色生態(tài)園區(qū)物業(yè)公司股權(quán)轉(zhuǎn)讓合作協(xié)議
- 二零二五年度私人老板與藝術(shù)策展人合作協(xié)議
- 二零二五年度科研機(jī)構(gòu)競業(yè)禁止協(xié)議期限與成果轉(zhuǎn)化
- 最經(jīng)典凈水廠施工組織設(shè)計(jì)
- VDA6.3過程審核報(bào)告
- 《心臟血管的解剖》課件
- 2024-2030年中國并購基金行業(yè)發(fā)展前景預(yù)測及投資策略研究報(bào)告
- 河道清淤安全培訓(xùn)課件
- 2024年湖南商務(wù)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫帶答案
- 骨科手術(shù)中常被忽略的操作課件
- 《湖南師范大學(xué)》課件
- 2024年全國各地中考試題分類匯編:作文題目
- 2024年高壓電工操作證考試復(fù)習(xí)題庫及答案(共三套)
- 《糖拌西紅柿 》 教案()
評(píng)論
0/150
提交評(píng)論