一、写在开始

我参与的是一款基于中科蓝讯 BT8910 的 TWS 耳机品牌项目,目前这个项目已经完成。

项目结束后,我想把开发过程中接触到的 Jira 问题单重新梳理一遍。其中既有我参与处理的内容,也有同事负责的模块。

现在查一个函数、一个配置项并不难,真正值得记录的是:面对一个问题现象时,应该先判断哪一层,为什么往这个方向查,以及怎么通过日志一步步缩小范围。

所以这次复盘不是给出一套标准答案,而是站在我目前对应用层的理解上,把问题现象、判断过程和排查思路整理下来,供遇到类似问题的同学参考。

整理过程中我还发现,很多反馈看起来不一样,根因却有重复。按根因归类后,下次遇到类似现象时,就可以先判断问题属于哪个环节,再沿对应链路往下查。

后续我会继续按模块整理项目中的问题单,包括按键、提示音、机盒通信、ANC、音量控制、功耗管理、出入盒、双耳同步、蓝牙问题和连接问题等内容。这一篇先从按键开始,归纳其中比较常见的 4 类问题。

阅读提示

全文约 2 300 字,预计 10 分钟读完。

本文包含 4 类按键问题:完全无响应、场景功能错误、误触,以及复杂手势互相干扰。重点不是讲基础原理,而是遇到类似反馈时,应该先查哪里、再往哪里查。

本文只讨论按键链路本身。如果按键已经触发正确功能,只是提示音没有播放或播放不对,就归到后续的提示音问题中。

二、所有手势都没有反应

客户反馈

其中一只耳机的触控按键完全无效,双击、三击、长按都没有反应。

排查思路

第一步:确认触控输入

先看这只耳机的触控按键是否有按下、松开的日志。

没有日志:先查这个触控按键的输入本身,例如触控是否启用、耳机是否在盒内、是否正处于禁键时间、触控阈值或通道是否正常。

有日志:说明这个触控按键已经有输入,继续往下查。

第二步:确认手势识别

再看目标手势有没有识别出来。

没有识别出来:重点查双击间隔、长按时间、松手后状态是否复位,以及组合手势是否把普通手势挡住了。

识别出来:说明手势已经产生,继续看功能。

第三步:确认功能消息

最后看手势有没有转换成正确的功能消息。

没有、为空或错误:查按键定义、场景切换和配置更新。

有正确消息:再确认功能处理是否执行;如果功能已经执行,后面只是没有提示音,就属于提示音问题,不再按按键问题处理。

判断与处理

“完全无效”不一定是触控硬件问题,也可能是手势已经产生、但后面没有正确链接到功能。处理时不要一开始就调灵敏度或改功能定义,先通过日志确认问题停在哪一层。

三、同一手势,功能却错了

客户反馈

  • 听歌时双击正常,来电时双击却不能接听或挂断。
  • 长按在听歌时能切换功能,到响铃或通话时却失效。
  • App 改完触控后,耳机执行的功能不对。

排查思路

第一步:固定一个场景复现

只测听歌、只测来电响铃,或只测通话,避免混在一起判断。

第二步:确认手势已经识别

如果手势都没出来,回到第一类问题排查。

第三步:核对当前场景的功能

手势正常后,直接看耳机最后想执行的是什么功能。

  • 同样是“双击”:听歌时可能是切歌,来电时应该是接听或拒接,通话中又可能是其他操作。
  • 来电时双击却去切歌:说明双击识别没有问题,只是耳机还在按“听歌时的规则”处理。
  • 只有通话异常:重点检查进入通话后,双击和长按是否已经改成通话时该做的功能。
  • App 改完才异常:重点检查新设置是否把听歌、来电或通话时的功能改错了。

判断与处理

听歌、来电响铃、通话时都可以识别同一个“双击”或“长按”,但后续要执行的功能并不相同。

这类问题通常是耳机没有按当前使用状态执行对应功能。处理重点是把每种状态下的功能对应关系确认清楚。

四、不该响应时仍然响应

客户反馈

耳机放在盒内还能切歌;刚出盒或拿取耳机时,容易误触切换功能。

排查思路

第一步:确认误触发生的时机

只发生在入盒、出盒和拿取时,还是正常佩戴时也频繁出现。

第二步:确认当前是否允许响应按键

查看触控输入到来时,耳机是否处于允许响应按键的状态。

第三步:区分入盒误触和正常佩戴误触

只在出盒、拿取时误触:优先查是否缺少短暂禁键保护。

正常佩戴时也频繁误触:再查触控灵敏度和触控区域。

判断与处理

这类问题不一定是触控太灵敏,更常见的是系统没有先判断“当前允不允许响应”。入盒后应禁用按键,出盒后可以保留一小段禁键时间;确认使用条件没有问题后,再考虑调灵敏度。

五、复杂手势互相干扰

客户反馈

  • 单只耳机长按触控按键,有时执行成了另一个功能。
  • 左右耳同时长按各自的触控按键时,可能只响应一只耳机,也可能同一个功能执行两次。
  • 有时操作结束后,下一次按键才开始不正常。

这类反馈的共同点是:触控并不是完全没识别到,而是耳机把这次操作理解错了。

排查思路

第一步:把操作还原完整

按的是左耳还是右耳的触控按键、按了多久、另一只耳机有没有一起按,都要记录下来。不要只记录“长按异常”,因为少一个动作,结果可能就不同。

第二步:把手势拆开验证

先只测一只耳机长按触控按键,再测左右耳同时长按,最后测连续操作,确认是哪一种操作开始出现异常。

第三步:对照预期和实际结果

例如预期是“左右耳同时长按,只执行一次切换功能”,实际却执行了两次,就重点检查两只耳机是否已经知道对方也在按。

第四步:再测一次后续操作

若第一次正常、第二次异常,重点检查耳机是否还记着上一次按下的信息,或对耳的按下状态没有及时清掉。

判断与处理

长按、连续按和双耳同时按,都不是一个瞬间就能判断完的动作。耳机需要结合按下时长、前后两次操作,以及另一只耳机的状态再做判断。

处理时先把操作顺序和实际结果写出来,再检查操作结束后相关状态是否清掉,通常比直接改判断条件更容易定位。

六、写在最后

后续排查按键问题时,可以先判断它属于哪一类:完全无响应、场景功能不对、不该响应时误触,还是复杂手势互相干扰。

先分清类别,再往对应链路查,通常比一开始就调触控参数更有效。


原文:CSDN · 【中科蓝讯】TWS 按键问题单复盘