FTxxxx系列-----home按键失灵(kl没有加载正确)
来源:互联网 发布:arm单片机是哪个公司的 编辑:程序博客网 时间:2024/04/27 14:58
home按键失灵
通常这种情况都会看kl文件有没有加载对
果然
dumpsys input出来的结果是
6: ft5x06_ts
Classes: 0x00000015
Path: /dev/input/event1
Descriptor: a3d3ffc870334637db1e8bbfb999c8c212cbcbc9
Location:
ControllerNumber: 0
UniqueId:
Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
KeyLayoutFile: /system/usr/keylayout/Generic.kl
KeyCharacterMapFile: /system/usr/keychars/ft5x06_ts.kcm
ConfigurationFile: /system/usr/idc/ft5x06_ts.idc
HaveKeyboardLayoutOverlay: false
由于Generic.kl里的home的scancode不对所以出现这个问题
可是为啥会没有加载ft5x06_ts.kl
因为我昨天加了一些key的define
key 116 GESTURE_DOUBLE_CLICK VIRTUAL WAKE
key 17 GESTURE_W VIRTUAL WAKE
key 31 GESTURE_S VIRTUAL WAKE
key 18 GESTURE_E VIRTUAL WAKE
key 46 GESTURE_C VIRTUAL WAKE
key 44 GESTURE_Z VIRTUAL WAKE
key 47 GESTURE_V VIRTUAL WAKE
到了framework去解析的时候发现
InputEventLabels.h里
没有定义GESTURE_DOUBLE_CLICK也就是没有 DEFINE_KEYCODE(GESTURE_DOUBLE_CLICK),
所以kl无法解析,所以只能加载Generic.kl
然后Generic.kl如何加载呢
首先在./frameworks/base/data/keyboards/common.mk:framework_keylayouts := $(wildcard $(LOCAL_PATH)/*.kl)
然后./frameworks/base/data/keyboards/Android.mk
$(LOCAL_BUILT_MODULE) : $(framework_keylayouts) $(framework_keycharmaps) $(framework_keyconfigs) | $(validatekeymaps)
$(hide) $(PRIVATE_VALIDATEKEYMAPS) $^
$(hide) mkdir -p $(dir $@) && touch $@
还有情况就是KeyLayoutMap: /system/usr/keylayout/goodix-ts.kl:31: Expected key flag label, got 'WAKE'出现这种错误的log
到
status_t KeyLayoutMap::Parser::parseKey() {
uint32_t flag = getKeyFlagByLabel(flagToken.string()); //这里获取flag
}
static uint32_t getKeyFlagByLabel(const char* label) {
return uint32_t(lookupValueByLabel(label, FLAGS));
}
然后
static int lookupValueByLabel(const char* literal, const InputEventLabel *list) {
while (list->literal) {
if (strcmp(literal, list->literal) == 0) {
return list->value;
}
list++;
}
return list->value;
}
然后
#define DEFINE_FLAG(flag) { #flag, POLICY_FLAG_##flag }
static const InputEventLabel FLAGS[] = {
DEFINE_FLAG(VIRTUAL),
DEFINE_FLAG(FUNCTION),
DEFINE_FLAG(GESTURE), //这里如果没有定义wake的话,kl就解析不了了。所以最好要都看一下
{ NULL, 0 }
};
- FTxxxx系列-----home按键失灵(kl没有加载正确)
- FTxxxx系列-----home按键失灵(kl没有加载正确)
- bug系列-------home key 失灵
- FTxxxx系列------selftest
- Ftxxxx系列--------kernel中传值
- Android6.0 按键kl文件加载过程分析
- Android5.0 按键kl文件加载过程分析
- IPHONE IOS模拟器没有HOME按键解决方法
- IPHONE IOS6 模拟器没有HOME按键解决方法
- xcode ios 模拟器没有HOME按键解决方法
- BT手柄按键失灵的问题(1)
- BT手柄按键失灵的问题(2)
- FTxxxx系列------系统通过属性获取virtualkey
- FTxxxx系列------变量初始化buf失败
- 键盘按键失灵的修复
- 【ActivityGroup】中按键监听失灵!
- mac笔记本部分按键失灵
- intlij idea 很多按键失灵
- 图文解析业务流程图怎么画的使用技巧
- Bootstrap 标签页(Tab)插件
- spring注解中那点逼事
- 内部排序 1
- iOS UITextField输入框随键盘弹出界面上移
- FTxxxx系列-----home按键失灵(kl没有加载正确)
- DB2 数据查询语言
- 14. Yii 2.0 数据缓存
- 自定义RadioButton小圆点,viewpager滑动改变颜色
- Java百文买百鸡
- C++11使用emplace_back代替push_back
- mySQL之多对一,一对一,多对多
- Codeforces Round #433 (Div. 2) C. Planning(贪心)
- EL表达式