edit | blame | history | raw

2026-06-24 MLV6触摸上行

用户目标

  • 当前目标收口为三条:MLV6 触摸信号接收、触摸速度区间计算、按速度触发对应叫床声播放。
  • 用户明确放弃 MLV6 晃动感应恢复;MLV6 的 0x30 被拦截、不再误触发叫床/震动,是当前希望保留的效果。

已完成事项

  • 对真实触摸日志进行复核:连续触摸 30-60 秒期间,App 只收到 0x44 心跳包,未收到独立 0x31/0x32/0x33 触摸命令。
  • 确认 0x44 包内 offset 11 的 0x32 不是触摸腿,而是 heartBeat.fromBytes() 解析出的 vibStrength
  • 形成新的排查假设:MLV6 触摸可能在同一服务的另一个 notify/indicate 特征值上报,而旧 SDK 只订阅了第一个 notify/indicate 特征值。
  • 在 LMSDK 源头 /Users/ar/Projects/langmei/.worktrees/lm-sdk-MV6touch-210/uni_modules/bobo-miniapp/utils/bluetooth.js 修改 subscribeNotify(serviceId)
  • 记录目标服务全部 characteristics:sdk.ble.characteristics.list
  • 订阅全部 notify/indicate characteristics
  • 记录每个订阅成功/失败:sdk.ble.notify.subscribe.success / sdk.ble.notify.subscribe.fail
  • 使用 npm run sync:sdk 将 LMSDK 源头同步到 App 运行副本。
  • 生成 Android 候选包:/Users/ar/Projects/langmei/.worktrees/lm-app-MV6touch-210/unpackage/release/apk/__UNI__693A991__20260624142318.apk
  • 验包确认包内包含:
  • sdk.ble.characteristics.list
  • sdk.ble.notify.subscribe.success
  • sdk.ble.notify.subscribe.fail
  • APK SHA256:745298109c2b646050bf50245bcced8b3cbda6abba9d65f0602d1ab63107b49b
  • 已把当前状态写入:
  • /Users/ar/Projects/langmei/.worktrees/lm-app-MV6touch-210/docs/round5/TODO.md
  • /Users/ar/Projects/langmei/.worktrees/lm-app-MV6touch-210/docs/round5/QA_RUN_20260624_1244.md

关键决策

  • 不再尝试让 MLV6 的 0x30 晃动通过 gate。
  • 不允许把 0x44 内部的 0x32 当成触摸事件,否则会把振动强度字段误判为触摸腿。
  • 下一步必须安装包含“订阅所有 notify/indicate 特征值”改动的新 APK 后再重新触摸测试;旧包继续测试没有价值。

文件变更

  • SDK 源头:
  • /Users/ar/Projects/langmei/.worktrees/lm-sdk-MV6touch-210/uni_modules/bobo-miniapp/utils/bluetooth.js
  • App 同步副本:
  • /Users/ar/Projects/langmei/.worktrees/lm-app-MV6touch-210/uni_modules/bobo-miniapp/utils/bluetooth.js
  • Round5 文档:
  • /Users/ar/Projects/langmei/.worktrees/lm-app-MV6touch-210/docs/round5/android-pack-mlv6-touch-2.1.0.json
  • /Users/ar/Projects/langmei/.worktrees/lm-app-MV6touch-210/docs/round5/TODO.md
  • /Users/ar/Projects/langmei/.worktrees/lm-app-MV6touch-210/docs/round5/QA_RUN_20260624_1244.md
  • 候选 APK:
  • /Users/ar/Projects/langmei/.worktrees/lm-app-MV6touch-210/unpackage/release/apk/__UNI__693A991__20260624142318.apk

未决问题

  • 新 APK 尚未安装成功。
  • adb installadb push + pm install 均失败:
  • INSTALL_FAILED_USER_RESTRICTED: Install canceled by user
  • 旧包已卸载,当前手机未安装 langmei.boborobots.com
  • 已将 APK 推送到手机:
  • /sdcard/Download/langmei-mlv6-touch-210.apk
  • 已尝试拉起系统安装界面,但 30 秒轮询后仍未安装成功。

后续建议

  1. 手机端先放行调试安装或手动从 Download 安装 langmei-mlv6-touch-210.apk
  2. 安装成功后启动 Langmei,登录测试账号,连接 MLV6,进入辛灵通话页。
  3. 使用提醒音频提示用户多触摸片同时触摸挤压 30 秒。
  4. 重点检查日志:
  • 是否出现 sdk.ble.characteristics.list
  • 是否订阅了多个 notify/indicate 特征值
  • 是否在新增特征值上收到独立 0x31/0x32/0x33
  • 是否触发 cmdTouchChest/cmdTouchLeg/cmdTouchB
  • 是否发送 /engine/input
  1. 如果仍无独立 0x31/0x32/0x33,需要进一步确认 MLV6 固件是否需要额外开启触摸上报命令,或触摸协议是否与现有 MLV5 文档不同。