驱动层添加按键码,当按键触发时,上报按键码值。在上层,监听keyevent,通过eventcode判断是哪个按键。

解决方案 »

  1.   

    大概的流程:在驱动中上报input按键值,在应用层把上报上来的keycode转换成scancode,对scancode用intent事件broadcast出去
      

  2.   

    看一下这一个:
    http://blog.csdn.net/a3015440/archive/2010/06/24/5692459.aspx
      

  3.   

    这个东西很简单,如果你的那个硬件的键值已经在kernel里注册了,那就只需要修改文件系统就好了。
    只有几个文件修改一下就可以了,主要是定义键值,然后就是在phonewindows.java中实现它实现的具体功能。
    建议打开/system/usr/layout/querty.kl(不知道有没有记错),这个文件记录了kernel传上来的键值以及文件系统对这个键值对应的值。如果你的kernel已经有这个键值,那么你把这个键值配置成你想要的功能就可以了。如果系统没有这个键值,你就自己添加,不过你说的这个符号文件系统里应该本来就有的。
    如果需要自己添加,随便在这个文件里找一个键值,然后再代码里搜索一下,有几个文件对这个键值做了声明,如VOLUME_UP,这样依葫芦画瓢也在同样的地方声明你自己的东东就好了。
      

  4.   

    首先在底层驱动里需要定义物理的按键的扫描码,在kl文件里定义扫描码跟keycode之间的对应关系,
    如何在上层新增keycode可以查看KeyEvent.java文件,里面有介绍需要修改哪些文件。
    但是PS:自己在上层新加按键有可能导致google 的CTS过不去。。
      

  5.   

    有哪位高手知道,能否给我发个demo。邮箱:zhengshuai1989◎126。com
      

  6.   

    最简单的办法:
    1.在kernel里找到你要定义的那个物理按键的code,就是按这个键给系统发送哪个号码。
    2.在/system/usr/layout/querty.kl文件里把这个code对应的信号设置成*或者#。
    先试试看吧。