Android原生C语言捕获按键

lsfreeing 2012-01-09

#include<stdio.h>

#include<stdlib.h>

#include<fcntl.h>

#include<linux/input.h>

staticintevent0_fd=-1;

structinput_eventev0[64];

//forhandlingevent0,mouse/key/ts

staticinthandle_event0(){

intbutton=0,realx=0,realy=0,i,rd;

rd=read(event0_fd,ev0,sizeof(structinput_event)*64);

if(rd<sizeof(structinput_event))return0;

for(i=0;i<rd/sizeof(structinput_event);i++){

printf("",ev0[i].type,ev0[i].code,ev0[i].value);

if(ev0[i].type==3&&ev0[i].code==0)

realx=ev0[i].value;

elseif(ev0[i].type==3&&ev0[i].code==1)

realy=ev0[i].value;

elseif(ev0[i].type==1){

if(ev0[i].code==158){

//ifkeyescthenexit

return0;

}

}elseif(ev0[i].type==0&&ev0[i].code==0&&ev0[i].value==0){

realx=0,realy=0;

}

printf("event(%d):type:%d;code:%3d;value:%3d;\n",i,ev0[i].type,ev0[i].code,ev0[i].value);

}

return1;

}

intmain(void){

intdone=1;

printf("sizeof(structinput_event)=%d\n",sizeof(structinput_event));

event0_fd=open("/dev/input/event1",O_RDWR);

if(event0_fd<0)

return-1;

while(done){

printf("beginhandel_event0…\n");

done=handle_event0();

printf("endhandel_event0…\n");

}

if(event0_fd>0){

close(event0_fd);

event0_fd=-1;

}

return0;

}

相关推荐