
手机说暂停、手表却继续HarmonyOS 多设备命令冲突的优先级与回写先看问题是怎么发生的手机端点暂停的同时手表端自动恢复运动记录。两个命令几乎同时到达哪个后执行哪个生效用户看到状态来回跳。时间戳并不能表达业务优先级设备时钟还可能不完全一致。验证边界本文依据文末华为开发者官方资料整理并用可执行 TypeScript 状态模型验证应用侧分支。当前本机为 API 24 且未连接 HarmonyOS 7 真机文中的 API 26 代码属于接入骨架不声称已完成 API 26 编译、真机性能测试或设备兼容认证。上线前仍需在目标 SDK 和真实设备上补齐接口、异常码、权限与性能证据。根因和工程边界命令需要 commandId、sessionId、source、generation 和 reason。当前会话只接受匹配 generation 的命令再按业务规则判断人工操作、设备安全策略和自动恢复的优先级。执行结果必须回写所有参与端不能只在本地改 UI。案例一用户手动暂停与自动恢复冲突同一 generation 下用户明确暂停优先于自动恢复。自动规则收到 rejectedByPolicy并更新界面为暂停而不是继续重试。案例二旧手表页面发送迟到开始命令手机已开始新会话旧命令 sessionId 不匹配直接拒绝并回写 staleSession。不能为了“保证到达”把旧命令套到新会话。可以独立运行的状态模型type Cmd{id:string;session:string;source:user|auto;action:pause|resume}; function choose(a:Cmd,b:Cmd){if(a.session!b.session)return a;return a.sourceuser?a:b.sourceuser?b:a} const xchoose({id:1,session:s,source:auto,action:resume},{id:2,session:s,source:user,action:pause});if(x.action!pause)throw new Error(人工命令未优先);这个小模型只验证应用侧判断不替代 HarmonyOS 7 真机和目标 SDK。接入平台接口时应把调用放在模型确定的边界内并把真实错误码、日志和用户可见结果补进验收记录。为什么选择这条方案最后到达者获胜实现简单却无法解释用户动作为什么被自动策略覆盖。业务优先级必须少而明确并把拒绝原因回写。对不可逆动作还应增加确认不把冲突解决藏在底层通信里。上线前验证清单验证项通过标准人工暂停对自动恢复人工优先有可重复步骤、日志或可见结果旧会话命令明确拒绝有可重复步骤、日志或可见结果重复 commandId不重复执行有可重复步骤、日志或可见结果执行失败两端状态一致有可重复步骤、日志或可见结果断线重连不重放过期命令有可重复步骤、日志或可见结果官方资料与证据边界1. 智能穿戴多设备能力2. 穿戴应用开发入门可复用结论先把输入、所有者、生命周期和失败回退写成状态再接入平台能力。这样出现异常时可以回答“哪一步失败、谁负责释放、用户还能做什么”而不是靠重复调用掩盖问题。