Chinaunix首页 | 论坛 | 博客
  • 博客访问: 332976
  • 博文数量: 102
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 1146
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-21 22:33
文章分类

全部博文(102)

文章存档

2011年(8)

2010年(94)

我的朋友

分类: LINUX

2010-12-15 11:04:42

Android上层接收到HOOKSWITCH事件可以处理接通/挂断电话,一键播放音乐等。
最近调试andorid headset对hookswitch的支持,底层input device A驱动上报了HOOKSWITCH key事件,可是上层无法接收到,跟踪log在EventHub部分出了问题。
Android默认到/system/usr/keylayout目录下搜寻*.kl文件,此类文件一般有Kernel Key--Value--Android Key的映射关系。例如A上报HOOKKEY的value是90,则需要指定对应上层转换后的key value.这个文件的格式可以查看emulator默认的qwerty.kl。

Android默认linux所有的输入设备(能上报KEY事件)都有与文件名对应的.kl 按键文件映射,如果没有,则打开qwerty.kl。 当然一般input device驱动所能支持的KEY事件,在qwerty.kl里面都包括了,如果是单独添加的一些KEy事件,则要创建私有的.kl文件备用。

Linux 对Input系统的构建非常好,任何input device可以根据自身的硬件属性提供不同类型的event给上层,Android经过Eventhub对这些事件进行过滤,投递给上层感兴趣的应用程序,这样就把APP--HAL--Driver三层结构很清晰的体现了。

阅读(2093) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-17 17:15:51

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com