public boolean onKeyDown(int keyCode, KeyEvent event) 
    {                    System.out.println(String.valueOf(keyCode));
            return super.onKeyDown(keyCode, event);  
        }  在平板电脑上外接1个usb键盘,这个代码可以得到大部分的键值包括大键盘区的数字键及回车键等,但是却得不到小键盘区的数字键值(num已经打开)及小键盘回车键等值。 怎样才能得到小键盘区的键值呢??

解决方案 »

  1.   

    发现andriod4.0上可以获取小键盘, android2.3不行,怎么办啊,我的程序只能支持2.3
      

  2.   

    研究了好几天 原来android4.0里面system/USR/layout里面有个Generic.kl及/system/usr/keychars/generic.kcm,里面包含了小键盘的键值和映射。
    而android2.3里面却只有:qwerty.kl和qwerty.kcm.bin,里面没有包含小键盘的键值。把2.3的generic.kcm复杂到2.3里面,发现2.3的keychars目录里面的格式却是.kcm.bin的和4.0的.KCM不兼容,而我不知道如何将.kcm文件编译成.kcm.bin文件。 有人会吗?
      

  3.   

    你说的那些我已经看不懂了神人,我只会一点java啥也不会
      

  4.   

    这个是焦点问题吧,我记得我曾经试过,点击输入框,小键盘弹出来,你就获取不到小键盘的key了,在按一下机器的上下键,这时候输入框的焦点就失去了(必须焦点失去),然后小键盘其实没有隐藏,再去按小键盘的键,其实是可以获取到小键盘的KEY值的。其实我也不知道怎么回事,个人感觉小键盘属于一个独立的activity,当小键盘拥有焦点的时候,你主程序就不能拥有焦点,按键的时候不会响应到主程序的事件了
      

  5.   

    我也遇到同样的问题。我想在android 2.2的mid接一个usb的数字小键盘,但是onKeyDown无法返回键值。
      

  6.   

    终于自己解决了,不是焦点问题,我在Generic.kl里面找到小键盘的键值,加到qwerty.kl里面就可以获取小键盘了。 看来这里的高手真不多啊,自己研究自己都成高手了 哈哈