【中科蓝讯】TWS 按键问题单复盘
一、写在开始 我参与的是一款基于中科蓝讯 BT8910 的 TWS 耳机品牌项目,目前这个项目已经完成。 项目结束后,我想把开发过程中接触到的 Jira 问题单重新梳理一遍。其中既有我参与处理的内容,也有同事负责的模块。 现在查一个函数、一个配置项并不难,真正值得记录的是:面对一个问题现象时,应该先判断哪一层,为什么往这个方向查,以及怎么通过日志一步步缩小范围。 所以这次复盘不是给出一套标准答案,而是站在我目前对应用层的理解上,把问题现象、判断过程和排查思路整理下来,供遇到类似问题的同学参考。 整理过程中我还发现,很多反馈看起来不一样,根因却有重复。按根因归类后,下次遇到类似现象时,就可以先判断问题属于哪个环节,再沿对应链路往下查。 后续我会继续按模块整理项目中的问题单,包括按键、提示音、机盒通信、ANC、音量控制、功耗管理、出入盒、双耳同步、蓝牙问题和连接问题等内容。这一篇先从按键开始,归纳其中比较常见的 4 类问题。 阅读提示 全文约 2 300 字,预计 10 分钟读完。 本文包含 4 类按键问题:完全无响应、场景功能错误、误触,以及复杂手势互相干扰。重点不是讲基础原理,而是遇到类似反馈时,应该先查哪里、再往哪里查。 本文只讨论按键链路本身。如果按键已经触发正确功能,只是提示音没有播放或播放不对,就归到后续的提示音问题中。 二、所有手势都没有反应 客户反馈 其中一只耳机的触控按键完全无效,双击、三击、长按都没有反应。 排查思路 第一步:确认触控输入 先看这只耳机的触控按键是否有按下、松开的日志。 没有日志:先查这个触控按键的输入本身,例如触控是否启用、耳机是否在盒内、是否正处于禁键时间、触控阈值或通道是否正常。 有日志:说明这个触控按键已经有输入,继续往下查。 第二步:确认手势识别 再看目标手势有没有识别出来。 没有识别出来:重点查双击间隔、长按时间、松手后状态是否复位,以及组合手势是否把普通手势挡住了。 识别出来:说明手势已经产生,继续看功能。 第三步:确认功能消息 最后看手势有没有转换成正确的功能消息。 没有、为空或错误:查按键定义、场景切换和配置更新。 有正确消息:再确认功能处理是否执行;如果功能已经执行,后面只是没有提示音,就属于提示音问题,不再按按键问题处理。 判断与处理 “完全无效”不一定是触控硬件问题,也可能是手势已经产生、但后面没有正确链接到功能。处理时不要一开始就调灵敏度或改功能定义,先通过日志确认问题停在哪一层。 三、同一手势,功能却错了 客户反馈 听歌时双击正常,来电时双击却不能接听或挂断。 长按在听歌时能切换功能,到响铃或通话时却失效。 App 改完触控后,耳机执行的功能不对。 排查思路 第一步:固定一个场景复现 只测听歌、只测来电响铃,或只测通话,避免混在一起判断。 第二步:确认手势已经识别 如果手势都没出来,回到第一类问题排查。 第三步:核对当前场景的功能 手势正常后,直接看耳机最后想执行的是什么功能。 同样是“双击”:听歌时可能是切歌,来电时应该是接听或拒接,通话中又可能是其他操作。 来电时双击却去切歌:说明双击识别没有问题,只是耳机还在按“听歌时的规则”处理。 只有通话异常:重点检查进入通话后,双击和长按是否已经改成通话时该做的功能。 App 改完才异常:重点检查新设置是否把听歌、来电或通话时的功能改错了。 判断与处理 听歌、来电响铃、通话时都可以识别同一个“双击”或“长按”,但后续要执行的功能并不相同。 这类问题通常是耳机没有按当前使用状态执行对应功能。处理重点是把每种状态下的功能对应关系确认清楚。 四、不该响应时仍然响应 客户反馈 耳机放在盒内还能切歌;刚出盒或拿取耳机时,容易误触切换功能。 排查思路 第一步:确认误触发生的时机 ...