在做UIBC项目的时候,支持鼠标回控,所以需要从Linux获取鼠标的状态,Input子系统很好的帮我们做好了这件事情。
在/dev/input/目录下有很多event设备,具体每个event都是什么用途,可以查看看/proc/bus/input/devices。有时需要支持多个设备。
如下可以看到鼠标是event1设备。
只是为了记录而已,就不多描述太多内容,直接上代码。
这是最多同时支持5个鼠标的案例。
int get_input_event(const char *type,int *event_num,int len)
{
int fd = -1,i,num = 0;
ssize_t size;
char buf[4096],buf1[32],event[10];
char *p = NULL,*p1 = NULL;
char *eventStr = "event";
memset(buf,0,sizeof(buf));
memset(buf1,0,sizeof(buf1));
memset(event,0,sizeof(event));
fd = open("/proc/bus/input/devices",O_RDONLY);
if (fd < 0)
{
ALOGI("open /proc/bus/input/devices fail\n");
return -1;
}
//ALOGI("open /proc/bus/input/devices ok\n");
size = read(fd,buf,sizeof(buf));
if (size <= 0)
{
ALOGI("read size is 0");
return -1;
}
//ALOGI("buf============(%s)\n",buf);
p = strstr(buf,type);
while(p)
{
p1 &