查看: 597|回复: 0

HarmonyOS穿戴应用:语音健康记录与跨端断连适配

[复制链接]
发表于 4 小时前 | 显示全部楼层 |阅读模式
手机上的健康记录,通常要经历“打开App、选餐次、搜索食物、估算份量”这一长串操作。等到晚上再回忆午餐,面条大小和奶茶剩多少已经记不清。HarmonyOS穿戴应用“小卡健康”选择把记录入口搬到手腕:抬腕唤起录音,口述“中午吃了一碗牛肉面,还喝了一杯奶茶”,整条记录就结束。背后是语音采集、AI语义解析、健康数据管理、传感器感知和手机手表跨端通信的完整链路。

小卡健康团队是3名00后女生开发者,起因是工作后体重反复、减脂计划多次中断。真正让他们改变思路的,是意识到“手表上应该显示什么”并不是把手机页面缩小。热量缺口、当日步数、饮水、体重这些一眼可读的指标适合留在表盘;复杂食谱、长篇营养报告、大段AI对话应该拿掉。产品最终形态与手机端已经有了本质区别。

腕上语音记录首先由Core Speech Kit接住声音。开发者创建语音识别引擎,通过回调拿到实时转写、识别状态和错误信息。Kit省去了录音上传和识别服务的搭建,但环境噪声、说话停顿、抬腕后未开口,都可能导致录音过早结束。小卡健康把录音确认放进了智慧手势:拇指和食指快速触碰完成确认,再用辅助动作切换焦点,减少吃饭、运动中对手表屏幕的精确点击。

转写完成后进入AI语义解析层。一条语音往往混着多个实体:“早餐吃了一个鸡蛋,喝了两杯水,做了30个深蹲、60个高位下拉,帮我分析一下今天的状态。”一个鸡蛋要匹配食物库,两杯水要落到饮水量,两个运动条目要分别入库,最后还要理解分析意图。用户换一种说法,字段位置也会跟着变。产品宣称能识别饮食、饮水、运动等十余类口述信息。

解析结果写入健康上下文依赖Health Service Kit。Kit开放日常活动、心率、睡眠和锻炼记录,但需要先申请服务和数据范围,再交由用户手动授权。受权限审批进度约束,小卡健康当前只能读取步数、历史记录,实现基础同步;距离、热量、体脂、营养、心率、压力、睡眠等多维数据仍在申请中。因此AI营养师现阶段只能基于已获批数据给出建议,部分体验还停留在规划阶段。同时,按照官方协议,经Health Service Kit获取的数据只能在用户授权范围内读写,不能作为医疗诊断依据。手表端不铺长报告,只展示识别结果和简短建议,详细趋势留给手机;如果数据尚未同步,页面会明确展示当前状态。

训练场景是另一套用法。“开练”团队里有一名开发者自己练力量。以前用手机记组数,每完成一组就拿起手机点一下,偏偏这时进入休息,手指常常顺势打开短视频,计划休息60秒,回过神时间早过了。手表端完成一组只需要抬腕确认,倒计时结束手腕振动。一次4个动作、每动作4组的训练,有16次组间切换。开练把训练前的计划制定和训练后的复盘留在手机,手表负责现场流程;临时修改本次重量和次数不会覆盖手机原计划;提前结束要二次确认,只保留已完成的有效记录。

跨端连接由Wear Engine Kit承担。开练对信息类型做了差异化传输:训练开始、暂停、完成一组这类实时性强的短事件,走即时消息通道快速双端通知;包含动作、组数、重量、次数的完整训练计划和最终结果,走文件传输模式保障数据结构完整。业务节奏决定通道选择,而不是把文档接口各用一遍。手机断开后,训练计划、当前进度和待发送结果保存在本地文件和Preferences中,断连时暂停参数编辑,但用户仍可继续或结束训练,连接恢复后再同步。

凯格尔运动使用相似的通信和振动能力,场景更私密。手机端选好课程,手表用不同振动区分收缩、放松、休息和阶段切换,用户只需要偶尔看一眼剩余时间和进度,其他时候跟着手腕上的提示完成训练。

Sensor Service Kit支持训练中的身体信号读取。开练实时监听心率,监听失败或出现无效值时页面显示“--”。小卡健康后续计划用加速度计、陀螺仪、心率和端侧模型识别更多动作。但传感器波形受佩戴松紧、左右手、动作幅度影响,采样频率过高又会增加耗电,需要在训练开始后开启监听,暂停或退出时及时停止,并用真机覆盖不同人群和佩戴方式。

从接口可用到产品可用,真正的工程鸿沟往往在接口之间。开练早期把智能手表上的复杂页面直接移植到运动手表,结果页面无法正常显示,完整训练流程也跑不稳。排查后,他们减少了单页元素,拆分复杂页面,降低图片和动画资源占用,并调整数据加载、内存和状态保存。最终结论是:跨设备的一致体验不等于在不同设备上使用完全相同的界面和实现;真正的一致,是用户在不同设备上都能稳定、顺畅地完成相同的核心任务。运动手表先把开始、完成、休息、结束和同步做好。

圆形屏幕也带来交互变化。开练充分利用表冠能力,用户转动表冠就能滚动浏览训练计划、查看详情或调整训练参数。力量训练时手上往往握着器械,旋转表冠比在狭小圆形屏幕上精准点击门槛更低。同时还要处理按钮焦点随画面滚动变化、如何给用户反馈、如何规避误触等细节。

后台任务也不是扔给系统就结束。开练通过Background Tasks Kit发布休息结束提醒,再用Notification Kit检查通知通道。设备设置、省电策略和系统状态都可能影响触达,因此训练进度要保存在本地,用户重新进入页面后能回到接近离开前的位置。用户看到的是一次振动,开发侧需要同时照看倒计时、页面生命周期和记录写入。

测试指标需要跟着真实场景走。语音记录要测从开口到结果的等待时长、解析后需要修改的次数;跨端训练要测过程消息是否漏掉、完整结果是否回传、断连后能否恢复;设备侧要测首屏、页面切换、峰值内存和一段完整训练的耗电。小卡健康的超慢跑功能,月度参与人数从不足200增长到10000以上,但上线前依然严格核对统计口径。

这套实践最终划出了一条产品边界:不是把手机端完整复制到手表。食谱、长报告、计划管理和复盘报告仍回归手机侧,手表只承接“动作短、发生时机明确”的任务。具体到产品现状,小卡健康的语音记录已经上线,更多健康数据、运动识别和Agent联动还在测试、权限申请和审核中;开练的实时心率也在等待最终版本。用户不会看到接口列表,他只关心一句话是否被听懂、手机断开后记录是否还在、振动是否在该来的时候稳定出现。这些,才决定下一次他还会不会抬腕。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-8-28 13:06 , Processed in 0.019879 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部