android 发送事件,Android 通过 event 发送组合键事件

标准的 event 驱动只能发送单个按键的事件,

如要实现在通过 event 发送组合按键事件,可以用下面的方法实现:

static void keys_timer(unsigned long  button_data)

{

struct keys_button *button = ((struct button_data *)button_data)->button;

......

if(button->code == KEY_A)    // KEY_A 可以是 GPIO 键,或者 ADC 键

{

if ( get_KEY_B() )              // KEY_B 是 GPIO 键

{

//KEY_A + KEY_B = KEY_AB

input->keybit[BIT_WORD(KEY_AB)] |= 1 << (KEY_AB & (BITS_PER_LONG-1));

input->key[BIT_WORD(KEY_AB)] &= ~(1 << (KEY_AB & (BITS_PER_LONG-1)));

input_event(input, EV_KEY, KEY_AB, 1);    //组合键按下

input_sync(input);

input->keybit[BIT_WORD(KEY_AB)] |= 1 << (KEY_AB & (BITS_PER_LONG-1));

input->key[BIT_WORD(KEY_AB)] |= 1 << (KEY_AB & (BITS_PER_LONG-1));

input_event(input, EV_KEY, KEY_AB, 0);    //组合键释放

input_sync(input);

}

}

......

}

发送 组合键的按下事件后,须再发送释放事件,否则将被认为是按住不放,应用层不会收到第二次组合键的事件。

GPIO/ADC 键  +  GPIO 键, 可以在一次 key_timer 调用中发送组合键,ADC 键  +  ADC 键,需要另做处理。

阅读(4349) | 评论(0) | 转发(0) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值