uinput模拟鼠标事件,用于跨屏操作

本文介绍如何利用uinput库在Android系统中模拟鼠标事件,实现跨屏操作。通过打开设备、设置参数、写入设备信息、创建设备和发送event等步骤,详细阐述了创建和控制模拟鼠标的方法,特别适用于远程操控场景。
摘要由CSDN通过智能技术生成

前段时间遇到一个情况,一个手机端应用要操控电视端应用,其将手机端的操作在电视端转换为uinput模拟的鼠标事件。后来想想,很多远程操作都应该用到了这个方法,因此也决定看看具体是怎么做的。

uinputde 的使用还是比较简单的,主要步骤如下:

1.打开设备

int fd = open("/dev/uinput", O_WRONLY | O_NDELAY);

2.通过ioctl函数设置参数

ioctl(fd,UI_SET_EVBIT,EV_XXX);

3.写入设备信息

struct uinput_user_dev mouse;

mouse.id.bustype = BUS_USB;

......

 write(fd, &mouse, sizeof(struct uinput_user_dev));

4.创建设备

ioctl(fd, UI_DEV_CREATE);

5.向设备发送event

struct input_event ev;

ev.type = EV_KEY;

......

write(fd, &ev, sizeof(struct input_event)

其中,eventtype主要包括:

#define EV_SYN          0x00    表示设备支持所有的事件
#define EV_KEY          0x01    键盘或者按键,表示一个键码  
#define EV_REL          0x02    鼠标设备,表示一个相对的光标位置结果
#define EV_ABS          0x03    手写板产生的值,其是一个绝对整数值 
#define EV_MSC          0x04    其他类型 
#define EV_LED          0x11    LED灯设备
#define EV_SND          0x12    蜂鸣器,输入声音 
#define EV_REP          0x14    允许

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值