`

android中添加按键的方法

 
阅读更多

添加一般按键键的方法:
qwerty.kl/KeycodeLabels.h/attrs.xml/KeyEvent.java 在以上4 个文件中相
应添加按键信息即可实现一个基本的按键到键值的映射
device/rockchip/rk29sdk/proprietary/internettv/qwerty.kl:添加硬件扫描
码到按键名的映射
//扫描码 按键名 附加标识(另见KeycodeLabels.h的FLAGS[])
key 158 BACK WAKE_DROPPED
key 62 ENDCALL WAKE_DROPPED
key 229 MENU WAKE_DROPPED
key 139 MENU WAKE_DROPPED
key 127 SEARCH WAKE_DROPPED
key 228 POUND
key 227 STAR

.......................

frameworks/base/include/ui/KeycodeLabels.h:添加按键名到应用层键值的映

static const KeycodeLabel KEYCODES[] = {
//按键名, 键值
{ "SOFT_LEFT", 1 },
{ "SOFT_RIGHT", 2 },
{ "HOME", 3 },
{ "BACK", 4 },
{ "CALL", 5 },
………
}

frameworks/base/core/res/res/values/attrs.xml:添加应用程全局变量到按键
键值的映射
<!-- This enum provides the same keycode values as can be found in
{@link android.view.KeyEvent}. -->
<attr name="keycode">
<!--按键名 键值-->
<enum name="KEYCODE_UNKNOWN" value="0" />
<enum name="KEYCODE_SOFT_LEFT" value="1" />
<enum name="KEYCODE_SOFT_RIGHT" value="2" />
<enum name="KEYCODE_HOME" value="3" />
<enum name="KEYCODE_BACK" value="4" />
………

frameworks/base/core/java/android/view/KeyEvent.java:添加应用程全局
变量到按键键值的映射
/** Key code constant: Home key.
* This key is handled by the framework and is never delivered to

applications. */
public static final int KEYCODE_HOME = 3;
/** Key code constant: Back key. */
public static final int KEYCODE_BACK = 4;
/** Key code constant: Call key. */
public static final int KEYCODE_CALL = 5;
/** Key code constant: End Call key. */
public static final int KEYCODE_ENDCALL = 6;
至此应用层已经能在dispatchKeyEvent() 或onKeyUp()/onKeyDown() 中通过
KeyEvent的 getKeyCode()获取到新添按键的键值

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics