Android平板的硬件越来越强大屏幕越来越大,大家希望按照使用PC的习惯来使用它,如果要在平板上进行大量的文字输入使用虚拟按键简直就是折磨自己,USB键盘才是正常的输入设备,下面的文章记录了调试键盘中对CapsLock按键添加的过程。
国际标准USB键盘的所有的按键在linux中已经有键值了在文件external/qemu/linux_keycodes.h,比如capslock没有功能只因为按键没有报到上层和中间层,在android_text_KeyCharacterMap.cpp的get函数中加log打印出Keycode会发现CapsLock的Keycode是0,现在首要是让Keycode报上来,以下的内容兼顾2.2和2.3
1.由于Android是基于Linux内核的,external/qemu/linux_keycodes.h文件中查到CapsLock按键的扫描码的值582.frameworks/base/core/java/android/view/KeyEvent.java
添加按键最起码,要涉及到三个文件:KeyEvent.java、qwerty.kl、qwerty.kcm,由于,
KeyEvent.java中描述所以放在开始来写。注意“NOTE”部分的描述
public static final int KEYCODE_CAPS_LOCK = 115;
// NOTE: If you add a new keycode here you must also add it to:
// isSystem()
// frameworks/base/include/ui/KeycodeLabels.h
// frameworks/base/core/res/res/values/attrs.xml