Android 4.0 Home键失效 keycode = 122错误
RT,编译高通M8660 ics运行后 menu, search , back 都正常,只有HOME键出问题。查找之后发现EventHub.cpp中打印的event->keyCode =122 与 KeycodeLabels.h 中 home值 = 3 不同,
其他三个键值都是对的。
请问各位大侠这个是什么问题?event->keyCode匹配是在哪个地方?
代码:
EventHub.cpp getEvent():
if (iev.type == EV_KEY && device->keyMap.haveKeyLayout()) {
status_t err = device->keyMap.keyLayoutMap->mapKey(iev.code,
&event->keyCode, &event->flags);
LOGW("iev.code=%d keyCode=%d flags=0x%08x err=%d\n",
iev.code, event->keyCode, event->flags, err);
}
KeycodeLabels.h 定义:
static const KeycodeLabel KEYCODES[] = {
{ "SOFT_LEFT", 1 },
{ "SOFT_RIGHT", 2 },
{ "HOME", 3 },
{ "BACK", 4 },
{ "CALL", 5 },
{ "ENDCALL", 6 }, --------------------编程问答-------------------- 问题已经解决 。呵呵 --------------------编程问答-------------------- 那是什么问题呢·
--------------------编程问答-------------------- 是ics 4.0 通过属性系统获取键值表出错。 --------------------编程问答-------------------- 建议不要使用属性系统的方法 --------------------编程问答--------------------
求详细代码!!! --------------------编程问答-------------------- 哥们,知道了就告知一下大家吧。 --------------------编程问答-------------------- 大哥,能否稍稍说细一点,不明白呀~~多谢了! --------------------编程问答-------------------- 最近移植Android 4.0.3的时候也发现了这个问题,MENU,BACK,SEARCH可以用,就是HOME有问题。
最后发现问题是系统加载按键映射文件不对导致的,系统会默认加载system/usr/keylayout下的Generic.kl映射文件,这个与我们实际的不符合。
解决方法是添加自己的kl文件到keylayout目录下,注意文件的名字要与你在按键驱动中注册的输入设备名字一致。 --------------------编程问答-------------------- 我最近也遇到了同样的问题,event->keyCode =122 ,这个键值从哪个属性文件中得来的?我的HomeKey是虚拟按键。 --------------------编程问答-------------------- kernel发上来的键值,需要重新map一下才能和上面的对应上啊。
呵呵,基础的移植知识哦
这里有个貌似是韩国人整理的移植文档,新入android的同学们可以看看的
http://www.kandroid.org/online-pdk/guide/index.html
--------------------编程问答-------------------- 存新手不会弄的路过! --------------------编程问答-------------------- 4.0之后的就有很多的麻烦,希望大神努力解决啊,
补充:移动开发 , Android