Fastmmi中如何增加一个测试按键
源码版本android7.1
基于qcom android7.1源码的fastmmi部分,源码中有按键测试部分,在此基础上增加自己需要的按键值。
1.代码修改文件input_listener_key.cpp
vendor/qcom/proprietary/fastmmi/mmi/input_listener_key.cpp
源码位置
bool input_listener_key::dispatch_event(input_event ev) {
layout *lay = this->get_lay();
char btn_name[64] = { 0 };
__u16 type = ev.type;
__u16 code = ev.code;
__u32 value = ev.value;
mod_ev_t modev;
modev.mod = this->get_module();
int down = ! !value;
if(type == EV_KEY) {
switch (code) {
case KEY_BACK:
strlcpy(btn_name, KEY_STR_BACK, sizeof(btn_name));
break;
case KEY_HOMEPAGE:
ev.code = KEY_HOME; //change the code to KEY_HOMEPAGE
case KEY_HOME:
strlcpy(btn_name, KEY_STR_HOME, sizeof(btn_name));
break;
case KEY_MENU:
strlcpy(btn_name, KEY_STR_MENU, sizeof(btn_name));
break;
//此处之后的代码省略了,增加的按键代码加在
//case 中,如下增加按键1
case 2:
strlcpy(btn_name, KEY_STR_1, sizeof(btn_name));
break;
}
}
}
增加代码
case 2:
strlcpy(btn_name, KEY_STR_1, sizeof(btn_name));
break;
2.代码修改/common.h
vendor/qcom/proprietary/fastmmi/libmmi/common.h
中增加
#define KEY_STR_1 "1"
3.代码修改layout_key.xml
vendor/qcom/proprietary/fastmmi/res/layout/layout_key.xml
下增加如下代码,
name 是按键名
text 是代码中存储的按键名称
w_rel 是显示的宽度
h_rel 是显示的高度
x_rel 是x坐标
y_rel 是y坐标
color 显示的颜色
<button
name="1"
text="btn_1"
w_rel="15"
h_rel="15"
x_rel="5"
y_rel="5"
color="0x007D7DFF" />
4.代码修改strings-zh-rCN.xml
使用的是中文,所以修改vendor/qcom/proprietary/fastmmi/res/values/strings-zh-rCN.xml
在按键相关处增加
<string name="btn_1">1</string>
5.代码修改mmi.xml
vendor/qcom/proprietary/fastmmi/res/config/mmi.xml
android7.1配置test的文件是mmi.xml
一般mmi.xml中会有多个芯片的KEY设置,找到对应芯片处修改,或者把多处都修改一下。
parameter=“keys:volumeup,volumedown,power;timeout:10;”
中增加 1
<module name="KEY"
lib_name="mmi_key.so"
enable="1"
automation="0"
display_name="key"
layout="layout_key.xml"
parameter="keys:1,volumeup,volumedown,power;timeout:10;"/>