RK 新加按键后 cts 验证不过 cas: android.input.cts.InputEventTest

1.异常信息:

2e3a6a6c9a1d4d1aa3a03115a745845c.png

2.代码逻辑

0b9645801f20413b879d8e42f47fdfd7.png

keyCodeToString:38782fea8efe43039733280b3f0eff22.pngd02c55d208c247c395a25d604a4fbf1e.png

900ae2a676b0424ba4a62084b3e452e5.png

 

KeyEvent::getLabele8ea1d7928864e3d877e21bf95bfad19.png

 

frameworks/native/libs/input/InputEventLabels.cpp:a82a12c8413f4564acd2a593ec5792b3.png

b1b6aa2aa29c494883193e088e422fb3.png

以KeyEvent的code作为索引遍历 KEY_NAMES 返回 literal参数

 

KEY_NAMES定义:

1b713bf215af4f028f8bc56758eaf54f.pngd1b4b8bef34a40008dd466ae06eaf37c.png

30daf66720f24c14b906d7b8ff98015d.png

KEY_NAMES 使用 KEYCODE_SEQUENCE 进行初始化

ced34b9c58f54819985e2b11b81749c9.png

 

3.原因定位:

3-1. cts 测试cas 异常原因:

7d94d90c1e014abf8767e438aaf49c06.png

 第一个0好元素 29行

KeyEvent.java中  KEYCODE_PROFILE_SWITCH的定义

453934b6cea74f8293d90010a6386630.png

vec[value].literal 即:KEY_NAMES[KEYCODE_PROFILE_SWITCH].literal  以及KEY_NAME的赋值:

const std::vector<InputEventLabel> InputEventLookup::KEY_NAMES = {KEYCODES_SEQUENCE};

即 KEYCODES_SEQUENCE 偏移 288 取其 literal成员-> 29行偏移 288行=> 317行38d649b9b77e42918f82cca48aa114e9.png

 KEYCODE_PROFILE_SWITCH 与SYSTEM_NAVIGATION_RIGHT 不符合所以报错

 

3-2. 对不齐的原因:新加了按键

172行新添加了5个按键导致了 后面的索引偏移了所以对不齐

InputEventLabels 文件中新增了如下修改

3080ad24b05b48fabe89184e3b5f822f.png

KeyEvent.java 修改如下

1b16ee259e4b4bfebf2463569df868df.png

 

F13的数值是305 即使KEYCODE_SEQUENCE 的305号元素,第0号元素在29行

4. 修改方案:

DEFINE_KEYCODE(F13) 往后的都新加按键应该在334行的位置

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿-源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值