Seetong · Report
🎯 Seetong 问题雷达 17:00 第236期
时间窗口:2026-10-16 09:00:00 ~ 2026-10-16 17:00:00(Asia/Shanghai)
TL;DR 核心要点
- 🔴 Android 8.4.1.6 及 HarmonyOS 1.1.1.11 出现单设备随机离线、P2P 恢复失败,部分设备心跳停更多日且用户需断电重启恢复(严重度 100 / 100,置信度 中)——257582 的 Logan 直证 4 台设备中 1 台 devIsOnline=0,lastHeartTime 停在 2026-10-07 20:43:59,多轮 TPS_MSG_P2P_OFFLINE dev4gOnline=-1,播放器显示“该设备不在线”;257639 同样直证设备 25524337 的 lastHeartTime 停在 2026-10-11 21:58:46,4 次出现“该设备不在线”。同期神策连接事件未见平台级离线激增,当前更需要设备/服务端心跳链路与固件联合核查。新增任务 T-20261016-170803-b4da
- 🟠 HarmonyOS 1.1.1.11 同版本出现“没有显示/回放看不到了/收不到任何信息”3 条独立反馈,但 Logan 仍为零覆盖(严重度 80 / 100,置信度 弱)——3 条覆盖 3 个 HUAWEI 机型、3 个省级地区;神策当前 HarmonyOS 运行版本口径下,MonitorFrameResult 当日成功 4,617,246 / 失败 106,214,失败率 2.25%,且 7 天失败率稳定在 2.25%~2.40%,没有平台级整体故障证据。代码侧发现 ReplayPage.isOffline 只声明未赋值、ts_AddWatchEx 返回值未贯通回放状态;沿用并更新任务 T-20260926-170258-2226
- 现象描述:同一账号下部分设备正常、单台设备随机或长期显示离线;有的设备只有断电重启才能重新连接;部分用户收到“设备不在线”提示后无法立即恢复。
最近一个月 Top 问题
按严重度与复发期数排序,已把跨期同类反馈归集;负责人由问题代码锚点对应的 Git 提交历史(blame / 近期主要提交者)反查;数据窗口:最近 30 天(截至 2026-10-16)。
| # | 问题(严重度降序) | 严重度 | 平台 | 版本 | 负责人 | 问题原因 |
|---|---|---|---|---|---|---|
| 1 | Android 8.4.1.6 及 HarmonyOS 1.1.1.11 单设备随机离线、P2P 恢复失败 15 期 · 139 条反馈 | 100 | Android · HarmonyOS | 1.1.1.11 / 8.4.1.6 / 1.1.1 | 陈宝旺、冉博麟、唐胜、许源 | 257582、257639 已确认是服务端心跳长期停更并伴随 P2P 离线,App 只是按离线状态展示;问题更可能在设备端、设备网关/P2P 服务或固件恢复机制,而不是 Android 播放器单点故障。 |
| 2 | 升级后回放体验整体退化 4 期 · 18 条反馈 | 85 | Android · iOS | 8.4.1.6 / 8.3.14.2 | 唐胜、许源、欧阳荣、谭伟 | 8.4.1.6 对回放链路做了多处改动(时间条 UI、通道切换进度对齐、报警-录像联动),导致回放体验多点退化;Logan 显示取流层无崩溃,问题在"UI/状态对齐 + 报警录像关联"而非连接失败。 |
| 3 | KMP 回放页未申请屏幕常亮,回放中手机自动息屏 11 期 · 29 条反馈 | 84 | Android · HarmonyOS | 8.4.1.6 / 8.4.1 / 8.4.2 | 唐胜、陈宝旺、许源、谭伟 | KMP 回放页的屏幕常亮能力已在代码中完整实现(KMP 公共层 → 桥接层 → Android 宿主层齐备),但承载该实现的提交只落在 feature_v8.4.2 一条分支上,feature_v8.4.4、master、hotfix_v1.1.1 全部不含,因此所有已发布版本(Android 8.4.1.6 / HarmonyOS 1.1.1.11)在运行时都走不到 FLAG_KEEP_SCREEN_ON,回放过程中发生系统级息屏。 |
| 4 | KMP 卡回放取「当天录像」时走云回放分支,失败后无超时兜底并反复重试 1 期 · 4 条反馈 | 71 | Android | 8.3.11.3 / 8.4.1.6 | 陈宝旺、谭伟 | KMP 回放页在选择 Tab 时只信设备记忆、不信设备能力,把 supportCloud=false 的设备硬切到云回放 Tab 并以「前一天」初始化;云链路从未 prepared(currentVideoUrl 空、cloudPrepared=false),失败事件 result=0 又恰好落入 result<0 的无退避重试分支,同时 SD 异常态在非 WiFi IPC 上被 return NONE 吞掉——三者叠加,用户既看不到当天录像也收不到失败提示,且失败状态被 saveLastPlaybackTab(tabIndex=1) 固化到下一次。 |
| 5 | iOS 8.4.1.6 冷启动点击离线报警推送后未进入回放 1 期 · 2 条反馈 | 70 | iOS | 8.4.1.6 / 8.4.106 | 欧阳荣、谭伟、陈宝旺 | 当前冷启动没有留下通知响应回调或 KMP 回放路由证据,用户实际停留在普通启动链路;最可能的缺口是冷启动通知回调 / 参数分支未被当前处理逻辑承接或没有兜底,但尚不能确认是 APNs payload 缺 content、回调未到、视图条件拦截还是路由失败。 |
| 6 | Android 8.4.1.7 KMP 回放页关闭窗口无效 1 期 · 1 条反馈 | 70 | Android | 8.4.1.6 / 8.4.1.7 | 唐胜、陈宝旺 | 当前只能确认 KMP 回放页成功创建并出流、用户随后进入其他页面,无法确认关闭请求是否到达 closePage;最可疑点是关闭桥接缺少结果反馈,以及返回键存在双重消费路径,但尚未形成直证。 |
| 7 | iOS 灯光配置「提示失败 / 实际成功」——`NetworkIndicatorEnable="-1"` 非法值导致 1521 返回 -1 1 期 · 3 条反馈 | 68 | iOS | 8.4.1.4 / 8.4.1.6 | 欧阳荣、谭伟 | iOS 端把 1301 + 1108 + 1521 三条独立协议的结果汇聚到同一个回调 block(UserClient.mm:1504 / 5091 / 5099),任一条失败即判定整次保存失败;当 1521 携带设备并不支持的 NetworkIndicatorEnable="-1" 字段时返回 Result="-1",UI 因此报「配置失败」,而 1301 / 1108 已生效 → 用户看到「提示失败、实际成功」。 |
| 8 | Android 8.4.1.6 进入监控长期「一直加载」——`add_watch_result=-1` 连续失败 40 次、首帧迟至 105 秒 3 期 · 10 条反馈 | 66 | Android · iOS | 8.4.1.6 | 唐胜、张威、谭伟、欧阳荣 | 进入监控页时 P2P 通道尚未建立,客户端在 105 秒窗口内以约 10 秒为周期反复 addWatch(返回 -1)→ stopWatch 空转,且无首帧超时兜底,用户侧表现为「一直加载」。 |
| 9 | iOS 回放「当前同时播放人数已达上限」误触发——NVR 主设备与通道共享 `cloudId` 导致额度自占 1 期 · 1 条反馈 | 64 | iOS | 8.3.14.3 / 8.4.1.6 | 欧阳荣、谭伟、位冬 | iOS 端 cloudId 被定义为「NVR 主设备与全部通道的公共分组键」(Camera.h:500 / STDeviceListModel.m:657),回放页又固定以 cameraArray.firstObject 作为回放上下文(STPlaybackVC.m:6046-6048),使单用户单设备场景下也可能同时占用「主设备会话」与「通道会话」两份 NVR 并发额度;一旦 NVR 返回 -7 / -14,STPlaybackVC.m:1422 立即把它翻译成「当前同时播放人数已达上限」并强制停止回放、隐藏功能栏,用户表现为「回放看不了」。 |
| 10 | Android 8.4.1.6「不存录像了」——设备侧存储能力位缺失 2 期 · 6 条反馈 | 63 | Android · HarmonyOS · iOS | 8.4.1.6 / 1.1.1.11 | 唐胜、张威 | 待补证——该 HONOR BRC-AN00 用户的设备在能力协商中未声明本地存储能力,客户端据此既不提示也无法确认存储可用,表现为「不存录像」;需设备端确认存储介质状态与固件行为。 |
🔴 问题 1:Android 8.4.1.6 及 HarmonyOS 1.1.1.11 单设备随机离线、P2P 恢复失败 | 负责人:唐胜
1. 现象与覆盖范围
- 现象描述:同一账号下部分设备正常、单台设备随机或长期显示离线;有的设备只有断电重启才能重新连接;部分用户收到“设备不在线”提示后无法立即恢复。
- 涉及反馈:257582(Android 8.4.1.6 / HONOR ELI-AN00 / 山东淄博)、257639(Android 8.4.1.6 / HONOR AAP-AN00 / 黑龙江哈尔滨)、257644(Android 8.4.1.6 / realme RMX3361 / 河南南阳)、257637(Android 8.4.1.6 / Redmi 2510DRK44C / 山东泰安)、257588(Android 8.1.2.4 / Redmi M098FE / 山东聊城)、257655(HarmonyOS 1.1.1.11 / HUAWEI HOP-AL00 / 河北承德)
- 覆盖维度:2 平台(Android / HarmonyOS)× 3 版本(Android 8.4.1.6、Android 8.1.2.4、HarmonyOS 1.1.1.11)× 6 机型 × 4 省级地区,达到 4 个可核验维度
- Logan 可用性:257582、257639、257644、257637 共 4 份;257588、257655 未提供 Logan
- 严重度评分:100 / 100(反馈量 30 / 共性 30 / 关键度 40)
- 反馈量 30:窗口内同族 6 条,超过 5 条
- 共性 30:平台、版本、机型、地区均达到 3 个以上维度
- 关键度 40:设备离线与远程查看不可达属于最高业务关键度
- 证据边界:257637 的 Logan 显示设备反复
TPS_MSG_P2P_CONNECT_OK、鉴权成功且多路画面“视频播放中”,没有出现同类离线事件。因此本问题不能表述为“Android 8.4.1.6 全量设备离线”,只能确认 6 条反馈共享症状,其中 257582、257639 有直接离线证据,257644 有瞬断后恢复证据,257637 反而证明同一版本存在正常连接路径。
2. 神策证据(核心数据源)
- 事件可用性:
SiotDevConnectResult10-16 Android 8.4.1.6 共 1,452,581 次,HarmonyOS 当前运行版本口径共 474,868 次;事件无缺失。 - 连接结果边界:
connect_type为空表示本次事件未形成可归类的连接结果。Android 8.4.1.6 为 27,647 / 1,452,581,占 1.90%;HarmonyOS 为 7,997 / 474,868,占 1.68%。 - HarmonyOS 7 天趋势:
connect_type=NULL占比为 1.68%~1.76%,10-10 至 10-16 分别为 1.76%、1.68%、1.67%、1.69%、1.73%、1.74%、1.68%,没有突发抬升。 - 事件链路边界:
DeviceConnectResult的错误码与错误信息在当前分组结果中为空,不能用该事件证明“设备已经连上但 App 未刷新”;本问题的主要服务端证据仍是设备列表中的devIsOnline、lastHeartTime、p2pLastHeartTime。 - 趋势结论:服务端整体离线率没有平台级异常,说明用户反馈更像单设备心跳、单设备网关/固件、账号下设备维度状态问题,而不是 Android/HarmonyOS 某版本全量故障。
3. Logan 关键日志(核心数据源)
- 反馈 257582(Android 8.4.1.6 / HONOR ELI-AN00,13,406 行)
- 设备列表
[L255]明确返回 4 台设备,其中devId=16457778、devName=院子、devIsOnline=0、lastHeartTime=1791377039000、p2pLastHeartTime=1791376355000;其余 3 台均为在线。 - 时间换算:
lastHeartTime=1791377039000对应 2026-10-07 20:43:59,p2pLastHeartTime=1791376355000对应 2026-10-07 20:32:35,到 10-16 日志时间已超过 8 天未更新。 [L900]、[L2595]、[L4658]多次出现LibImpl-doMsgRspCB devId=16457778 TPS_MSG_P2P_OFFLINE dev4gOnline=-1;[L901]、[L2604]、[L4669]继续打印CPGClassPeer::RecvStatusReply, PeerOffLine。[L4677]:PreviewPlayerView-setVideoInfo msg: 该设备不在线 devid=16457778;[L4679]:showHelpButton: true。- 同日同账号其他设备正常:
[L3905]的devId=16457837和[L4908]的devId=16457788均收到first i frame comes;这说明 App 播放链路、账号和网络入口并非整体不可用。 - 第二次会话
[L6968]、[L8930]再次出现相同离线状态,排除了单次瞬时误报。 - 反馈 257639(Android 8.4.1.6 / HONOR AAP-AN00,3,354 行)
- 设备列表
[L84]与[L472]明确返回devId=25524337、devName=大门、devIsOnline=0、lastHeartTime=1791727126000、p2pLastHeartTime=1791728390000。 - 时间换算:
lastHeartTime=1791727126000对应 2026-10-11 21:58:46,到 10-16 14:49 反馈时已约 4 天 17 小时未更新。 [L248]、[L983]、[L1144]、[L1246]、[L1379]等共 16 次TPS_MSG_P2P_OFFLINE dev4gOnline=-1;[L984]、[L1380]、[L1493]、[L2657]共 4 次显示“该设备不在线”。[L986]、[L1382]、[L1495]、[L2659]均出现showHelpButton: true,与用户“总是设备离线”的反馈一致。- 反馈 257644(Android 8.4.1.6 / realme RMX3361,34,296 行)
[L13214]设备列表显示devId=28036334、devIsOnline=1、lastHeartTime=1792129299000、p2pLastHeartTime=1792129886000,服务端初始判断在线。[L15558]、[L15570]、[L15758]连续出现TPS_MSG_P2P_OFFLINE dev4gOnline=0;随后[L15761]出现TPS_MSG_NOTIFY_AUTH_SUCCESS-->devId=28036334,[L18307]设备列表在 13:59 更新为在线。- 该样本证明存在“服务端在线、P2P 短时离线、随后自动恢复”的瞬断形态,不等同于 257582/257639 的长期心跳停更。
- 反馈 257637(Android 8.4.1.6 / Redmi 2510DRK44C,65,472 行)
[L258]、[L1457]、[L2750]等多次TPS_MSG_P2P_CONNECT_OK-->gun&ball device;[L260]、[L1484]、[L2852]等多次TPS_MSG_NOTIFY_AUTH_SUCCESS-->devId=45967468。[L806]、[L828]、[L850]等 868 次显示“视频播放中”;未检索到TPS_MSG_P2P_OFFLINE或“该设备不在线”。- 因此该反馈不能作为连接失败直证,应回访确认具体是哪一个通道、哪一个入口或哪一时段出现问题。
- Logan 小结:257582/257639 是强证据,证明 App 展示结果与服务端
devIsOnline=0、心跳停更一致;257644 说明 P2P 瞬断可自动恢复;257637 说明同版本也存在成功链路。根因最可能在设备/网关/服务端心跳与 P2P 状态,不在单一的 App 播放器。
4. 代码定位(详细)
- 涉及模块:Android 设备在线态、P2P 离线事件、设备列表与预览播放状态
- 关键类与锚点:
LibImpl.java:3279-3310:处理TPS_MSG_P2P_OFFLINE,解析devId与dev4gOnline,调用deviceOffline并发送离线消息。LibImpl.java:3088-3124:deviceOffline在事件到达且非绑定 60 秒保护期时,将m_connect_ok=false、m_status_nvr=OFFLINE、wifiSignal=0、connectNum=0,并刷新设备列表。只有dev4gOnline=0/1才更新heartPlatformStatus;dev4gOnline=-1时保留旧值但仍执行离线状态。DeviceServiceImpl.kt:1211-1217:设备列表刷新时把服务端lastHeartTime写入PlayerDevice,随后组装通道与在线态。KMPDeviceModule.kt:668-693:KMP 设备卡片使用dev.onLine映射devIsOnline,并把lastHeartTime透传给页面。PreviewPlayerView.kt:1782-1797:收到TPS_MSG_P2P_OFFLINE / TPS_MSG_P2P_NVR_OFFLINE后,对当前nvrId调用onDevOffLine()。PreviewPlayerView.kt:1885-1898:onDevOffLine()隐藏等待态并调用showHelpButton(true),与 Logan 日志逐条对应。
- 调用链:
SDK P2P 离线事件 → LibImpl.doMsgRspCB → deviceOffline → refreshDevListByOnlineState → DeviceServiceImpl.parseDeviceList → KMPDeviceModule.buildRemoteDevice → 设备卡片 devIsOnline=0
- 关键分支:
- 服务端返回
devIsOnline=0时,客户端没有二次在线校验,直接呈离线;257582/257639 的服务端状态与心跳也确为离线,因此当前不是典型“客户端误判”。 dev4gOnline=-1不更新heartPlatformStatus,但会把连接状态置为离线;如果后续 4G 平台状态恢复而 P2P 未恢复,UI 可能继续显示设备离线。- 只有重新建立 P2P 并收到鉴权成功/首帧,页面才恢复播放;若设备端心跳停更但 P2P 服务仍认为旧连接存在,用户侧可能会看到长时间不恢复。
- 修复方向锚点:
- 由 SDK/服务端 owner 追查
16457778、25524337的lastHeartTime、p2pLastHeartTime、TPS_MSG_P2P_OFFLINE、设备网关和固件状态,确认为何心跳停更多日且断电后才恢复。 - 在
deviceOffline增加结构化日志字段:devId、dev4gOnline、旧/新heartPlatformStatus、lastHeartTime、P2P 连接编号、触发来源。 - 对
dev4gOnline=-1增加服务端在线状态复核,避免“4G 状态未知”直接等同一个确定的离线结论。 - 为设备卡片和播放页补“重新检测/重新连接”结果埋点,区分网络不可达、P2P 离线、鉴权失败、设备心跳停更。
5. 根因结论
- 置信度:🟡 中
- 一句话根因:257582、257639 已确认是服务端心跳长期停更并伴随 P2P 离线,App 只是按离线状态展示;问题更可能在设备端、设备网关/P2P 服务或固件恢复机制,而不是 Android 播放器单点故障。
- 关键证据链:
- 257582:
devIsOnline=0+lastHeartTime停在 10-07 + 多轮TPS_MSG_P2P_OFFLINE+ 同账号其他设备正常首帧。 - 257639:
devIsOnline=0+lastHeartTime停在 10-11 + 16 次 P2P 离线 + 4 次“该设备不在线”。 - 257644:P2P 瞬断后自动鉴权恢复,说明并非所有离线都不可逆。
- 神策:10-16 连接事件正常且空连接类型比例 1.68%~1.90%,7 天平台级趋势稳定,否定“某端全量离线”。
- 明确不成立的推断:不得写成“Android 8.4.1.6 或 HarmonyOS 1.1.1.11 无法连接设备”;不得把 257637 的正常 Logan 当作离线直证;不得把所有离线都归因 App。
6. 建议下一步
- 分配给:张威(SDK/P2P 离线状态机)、唐胜(App 播放与设备状态链路);257655 由 HarmonyOS owner 配合核查
- 优先处理项:
- 联系 257582 与 257639,获取设备 SN、固件版本、路由器/网关信息,并由服务端回查离线期间心跳与 P2P 服务日志。
- 对
16457778、25524337验证断电重启前后的lastHeartTime、p2pLastHeartTime、devIsOnline与网关连接状态,确认是否属于固件心跳停止。 - 在
deviceOffline与恢复成功路径补按devId串联的结构化埋点,将“设备侧停更、P2P 失败、服务端显示离线、App 恢复”拆成可量化阶段。
- 验证方法:选取 257582、257639 各 1 台设备,执行“断电重启 → 恢复网络 → App 冷启动 → 设备列表刷新 → 进入预览”五步;验收标准为 10 分钟内
devIsOnline=1、lastHeartTime持续更新、P2P 鉴权成功且首帧可见。
🟠 问题 2:HarmonyOS 1.1.1.11 无显示、回放不可见与无信息连续出现 | 负责人:许源
1. 现象与覆盖范围
- 现象描述:同一 HarmonyOS 版本在不同账号与机型上分别出现“页面没有显示”“回放看不到了”“现在收不到任何信息”,症状覆盖预览/回放/消息三类入口,但反馈文本都很短,未说明具体页面、设备类型和操作路径。
- 涉及反馈:257658(HUAWEI CRS-AL00 / 山东潍坊 / 16:57,“现在收不到任何信息”)、257589(HUAWEI PSN-AL00 / 河北保定 / 10:04,“回放看不到了”)、257584(HUAWEI SGU-AL10 / 黑龙江佳木斯 / 09:41,“没有显示”)
- 覆盖维度:1 平台(HarmonyOS)× 1 版本(1.1.1.11)× 3 机型 × 3 省级地区,达到 3 个可核验维度
- Logan 可用性:3 条均未提供 Logan;窗口内 HarmonyOS 共 11 条反馈、8 条非网络反馈,Logan 覆盖为 0 / 8,为连续第 15 期零覆盖
- 严重度评分:80 / 100(反馈量 20 / 共性 30 / 关键度 30)
- 反馈量 20:窗口内同版本功能类反馈 3 条,处于 3~5 条档
- 共性 30:版本、机型、地区均达到 3 个维度
- 关键度 30:回放与报警消息属于录像回看链路
- 重要边界:三条反馈描述不同,不能直接认定为同一个功能缺陷;也可能是设备离线、云存权益、存储卡状态或消息配置导致。
2. 神策证据(核心数据源)
- 版本口径说明:反馈平台展示 HarmonyOS 1.1.1.11,神策 HarmonyOS 当前运行版本字段为
$app_version=8.4.1.6;由于三条反馈均无 Logan,无法逐条映射设备与会话,故本节只作为平台级边界,不作为单条反馈根因。 MonitorFrameResult10-16 HarmonyOS 当前版本口径:成功 4,617,246 次 / 失败 106,214 次,失败率 2.25%。- 同期对照:Android 8.4.1.6 成功 17,573,149 / 失败 471,127,失败率 2.61%;iOS 8.4.106 成功 5,900,442 / 失败 156,025,失败率 2.58%。HarmonyOS 平台级失败率反而更低。
- 7 天趋势:HarmonyOS
MonitorFrameResult失败率 10-10 至 10-16 分别为 2.37%、2.40%、2.30%、2.26%、2.35%、2.35%、2.25%,没有持续恶化。 DeviceVideoPlayback10-16 HarmonyOS 当前版本口径:成功 4,250 次,失败 254 次,失败率 5.64%;失败中“存储卡未初始化”71 次、“获取录像超时”63 次、“获取设备录像时间轴数据失败”46 次、“设备离线”35 次、“设备录像时间轴数据为空”18 次。CloudPlayback10-16 HarmonyOS 当前版本口径只有 104 次事件:成功 60 次、“当前没有报警消息”26 次、“获取云存事件数据为空”18 次。样本量过低,且后两类可能属于账号无云存内容或正常空态,不能证明“回放不可用”。- 趋势结论:神策未发现 HarmonyOS 1.1.1.11 对应运行版本的整体出图失败或回放失败激增;当前证据不足以支撑“版本级回放损坏”。
3. Logan 关键日志(核心数据源)
- 反馈 257658、257589、257584:
loganFileDownloadUrl均为空字符串,无法读取关键类、错误码、上下文或调用栈。 - 连续零覆盖影响:无法判断“没有显示”是列表空白、预览页黑屏、回放页无首帧,还是用户进入其他页面;无法确认“回放看不到了”是设备离线、存储卡异常、云存为空还是回放接口失败;无法确认“收不到任何信息”是消息中心为空、推送未到达还是报警未生成。
- 数据源降级规则已执行:HarmonyOS Logan 不可用时,不阻塞报告,直接降级为弱置信度,并在“待补证”中要求服务端与客户端共同定位上报链路。
4. 代码定位(详细)
- 涉及模块:HarmonyOS 回放页、设备播放服务、回放首帧事件、云回放错误回调
- 关键类与锚点:
ReplayPage.ets:154-155:isOffline只声明并固定为false,注释明确“目前未赋值”。ReplayPage.ets:3886-3897:卡回放提示页只有在isOffline=true时显示“设备离线”提示;由于状态从未赋值,这条用户可见提示实际上无法触发。DeviceServiceImpl.ets:5533-5548:回放/预览调用TSNapi.ts_AddWatchEx(...),最终只返回ret == 0,没有把失败原因、连接类型、超时或回调状态上报到回放页。DeviceViewModel.ets:1539-1548:仅在收到MESSAGE_TYPE_RECORD_FIRST_FRAME时打印[RecordFrame] firstFrame并通知 KMP;没有“首帧超时”或“回放请求失败”的对侧日志。KMPCloudPlaybackVideoView.ets:73-78:云回放onError只执行notifyPreparedFailed/notifyStartFailed与状态重置,缺少可回传前端的错误码和用户可见失败原因。
- 调用链:
回放页进入 → DeviceServiceImpl.addWatch → ts_AddWatchEx → DeviceViewModel 接收回放首帧 → KMP 回放渲染 → 失败时仅重置状态
- 关键缺口:
ReplayPage.isOffline未赋值,离线态无法在卡回放提示页完整呈现。ts_AddWatchEx只有布尔结果,无法区分设备离线、参数错误、P2P 失败、鉴权失败、无录像或首帧超时。- 回放首帧只有成功日志,没有超时计时器与失败日志,无法回答“为什么没显示”。
- 云回放
onError未携带错误码到前端,用户侧缺少失败原因。 - 修复方向锚点:
- 在
ReplayPage根据设备在线态和回放首帧状态正确给isOffline赋值,并为无录像、无权限、存储卡异常、云存为空分别定义页面状态。 - 在
DeviceServiceImpl.addWatch返回结构化结果:devId、ret、连接类型、失败原因、首帧是否在超时内到达。 - 在
DeviceViewModel为回放首帧增加超时日志和失败事件,统一输出devId + requestId + state + elapsedMs。 - 在
KMPCloudPlaybackVideoView.onError中保留原生错误信息并向 KMP 回传,避免失败只停留在内部状态。
5. 根因结论
- 置信度:🔴 弱
- 一句话根因:当前不能确认单一根因;可以确认 HarmonyOS 1.1.1.11 存在回放/显示相关的多点反馈,同时代码侧缺少离线状态赋值、连接失败原因与首帧超时可观测性,导致无法区分设备离线、SD 卡异常、云存为空和回放链路失败。
- 关键证据链:
- 反馈侧:3 条独立账号、机型、地区的“无显示/回放不可见/无信息”。
- 神策侧:平台级出图失败率 2.25% 且 7 天稳定,否定全量版本故障。
- 代码侧:
ReplayPage.isOffline未赋值、ts_AddWatchEx无结构化失败结果、回放首帧无超时日志。 - Logan 侧:0 / 8,无法形成闭环,因此根因只能保持弱置信度。
- 明确不成立的推断:不得写成“HarmonyOS 1.1.1.11 回放功能损坏”;不得把平台级 2.25% 出图失败率等同于 3 条反馈均为 App 缺陷;不得忽略无 Logan 的事实。
6. 建议下一步
- 分配给:李国涛(HarmonyOS 回放页与
isOffline状态)、陈宝旺(ts_AddWatchEx与跨端播放回调) - 优先处理项:
- 回访 257589、257584、257658,确认具体页面、设备、操作入口与失败文案,并索取覆盖操作时段的 HarmonyOS 日志。
- 先修复
ReplayPage.isOffline未赋值与回放首帧超时观测,再复现“回放看不到”;没有状态区分前,不把三条反馈合并为单一根因。 - 服务端与客户端共同定位 HarmonyOS Logan 连续 15 期零覆盖,确认是客户端未上传、下载地址为空还是服务端保存链路失败。
- 验证方法:选取 3 台 HarmonyOS 1.1.1.11 真机,分别覆盖在线设备正常回放、设备离线、存储卡异常、无云存内容四种场景;验收标准为页面能显示准确状态、回放请求与首帧结果可按
devId串联、失败时保留原生错误码。
本期扫描全量
本窗口接口返回 total=77、fetched=77、complete=true、pages=2。以下按可合并模板聚合网络类反馈,并逐条列出全部非网络反馈。
| 分类 | 关键词或问题簇 | 反馈数 | 处置 |
|---|---|---|---|
| 🔴 进雷达 | 远程设备离线/连接不可达 | 6 | 问题 1 |
| 🟠 进雷达 | HarmonyOS 无显示/回放不可见/无信息 | 3 | 问题 2 |
| 🟡 单点待核查 | 人形捕捉不全 | 1 | 未达到跨样本阈值 |
| 🟡 业务待核查 | 充值提示卡片不存在、绑定随机码不存在、管理员变更 | 3 | 需账号/支付/设备业务侧核查 |
| 🟡 单点待核查 | 外文“连接手机”描述不足 | 1 | 待回访 |
| 🟤 用户操作 | 如何恢复出厂设置 | 1 | 已排除 |
| 🟢 无效文本 | “大个”“马迎丹”“123456”、设备序列号裸文本 | 4 | 已排除 |
已折叠 4 条普遍性网络问题(含-102/-101/-1002与中/英/俄/法/西/葡/土/阿/日多语言网络提示模板,如Проверьте телефонную сеть、Please check your mobile network);全量明细见同名 Markdown 知识库。
非网络反馈明细
| ID | 时间 | 平台 | 版本 | 机型 | 地区 | 反馈摘要 | Logan | 处置 |
|---|---|---|---|---|---|---|---|---|
| 257658 | 16:57 | HarmonyOS | 1.1.1.11 | HUAWEI CRS-AL00 | 山东潍坊 | 现在收不到任何信息 | ✗ | 🟠 问题 2 |
| 257656 | 16:43 | Android | 8.4.1.6 | WIKO JLG-AN00 | 内蒙古赤峰 | 大个 | ✓ | 🟢 无效文本 |
| 257655 | 16:33 | HarmonyOS | 1.1.1.11 | HUAWEI HOP-AL00 | 河北承德 | 监控电脑可以看,手机一直显示离线 | ✗ | 🔴 问题 1 |
| 257644 | 15:26 | Android | 8.4.1.6 | realme RMX3361 | 河南南阳 | 前面哪个摄像头登不上了 | ✓ | 🔴 问题 1 |
| 257639 | 14:49 | Android | 8.4.1.6 | HONOR AAP-AN00 | 黑龙江哈尔滨 | 总是设备离线 | ✓ | 🔴 问题 1 |
| 257637 | 14:18 | Android | 8.4.1.6 | Redmi 2510DRK44C | 山东泰安 | 连接不到大厅摄像头 | ✓ | 🔴 问题 1,Logan 未证实失败 |
| 257627 | 13:32 | HarmonyOS | 1.1.1.11 | HUAWEI BRE-AL80a | 山东潍坊 | 人形捕捉不全 | ✗ | 🟡 单点待核查 |
| 257626 | 12:45 | Android | 8.0.0.7 | OPPO PEMM20 | 河南安阳 | 怎么恢复出厂设置 | ✗ | 🟤 用户操作 |
| 257624 | 12:44 | Android | 8.4.1.6 | OPPO PDVM00 | 河北石家庄 | 马迎丹 | ✓ | 🟢 无效文本 |
| 257620 | 12:19 | Android | 8.3.13.3 | Infinix X6855 | 塔什干 | 连接手机 | ✓ | 🟡 描述不足 |
| 257613 | 11:50 | HarmonyOS | 1.1.1.11 | HUAWEI MIS-AL00 | 吉林长春 | 充值充不上,提示卡片不存在 | ✗ | 🟡 业务待核查 |
| 257607 | 11:32 | HarmonyOS | 1.1.1.11 | HUAWEI SGT-AL10 | 河北石家庄 | 绑定随机码不存在 | ✗ | 🟡 业务待核查 |
| 257597 | 10:48 | Android | 8.3.2.3 | HONOR REA-AN00 | 北京 | 裸设备序列号 | ✗ | 🟢 无效文本 |
| 257594 | 10:35 | HarmonyOS | 1.1.1.11 | HUAWEI BLK-AL80 | 黑龙江双鸭山 | 原管理员离职,如何成为管理员 | ✗ | 🟡 业务待核查 |
| 257589 | 10:04 | HarmonyOS | 1.1.1.11 | HUAWEI PSN-AL00 | 河北保定 | 回放看不到了 | ✗ | 🟠 问题 2 |
| 257588 | 09:54 | Android | 8.1.2.4 | Redmi M098FE | 山东聊城 | 太阳板摄像头总是打不开 | ✗ | 🔴 问题 1 |
| 257585 | 09:46 | Android | 8.4.1.6 | HONOR CLK-AN00 | 山东泰安 | 123456 | ✓ | 🟢 无效文本 |
| 257584 | 09:41 | HarmonyOS | 1.1.1.11 | HUAWEI SGU-AL10 | 黑龙江佳木斯 | 没有显示 | ✗ | 🟠 问题 2 |
| 257582 | 09:18 | Android | 8.4.1.6 | HONOR ELI-AN00 | 山东淄博 | 四台设备总有一台随机离线,掉线后只能停电重启 | ✓ | 🔴 问题 1 |
网络反馈模板清单
-102共 48 条,均为“请检查手机网络,重启 App 尝试解决”的中文、英文、俄语等同源模板;平台分布为 Android 48 条。-101共 5 条,均为网络不稳定或检查网络环境模板;平台分布为 Android 5 条。10042913共 1 条,为 Android 网络错误提示。- 手机流量/数据流量卡顿、没有 4G 联网共 4 条,其中 Android 1 条、HarmonyOS 3 条,均不含具体业务操作链。
任务账本联动
| 任务 ID | 标题 | 状态 | 处置 |
|---|---|---|---|
T-20261016-170803-b4da | 核查 Android 8.4.1.6 单设备随机离线且仅断电重启恢复 | P1 / captured / 张威 | 本期新建:回查 16457778、25524337 的心跳与 P2P 时序,确认设备/服务端根因 |
T-20260926-170258-2226 | 排查 HarmonyOS 1.1.1.11 实时预览与回放大范围不可用 | P1 / captured / 欧阳荣 | 本期更新:吸收 257589、257584、257658,补充 ReplayPage.isOffline 与首帧可观测性缺口 |
T-20261014-090651-0bee | 核查 HarmonyOS 1.1.1.11 设备频繁离线且断电不恢复 | P1 / captured / 欧阳荣 | 本期更新:新增 257655“电脑可看、手机离线”无 Logan 证据 |
T-20260926-115214-fdf9 | 核查 HarmonyOS 1.1.1.11 设备已联网但列表显示离线 | P1 / captured | 本期无可用 Logan,维持观察 |
数据源状态汇总
| 数据源 | 状态 | 说明 |
|---|---|---|
| 反馈平台 | ✅ 正常 | total=77 / fetched=77 / complete=true / pages=2;窗口 2026-10-16 09:00:00~17:00:00 |
| 心愿单 | ✅ 正常 | total=6 / fetched=6 / complete=true;3 条“测试”、2 条文本不完整、1 条商城建议 |
神策 SiotDevConnectResult | ✅ 正常 | Android 8.4.1.6 1,452,581 次;空连接类型 1.90%,7 天趋势稳定 |
神策 MonitorFrameResult | ✅ 正常 | HarmonyOS 当前版本口径成功 4,617,246 / 失败 106,214;失败率 2.25% |
神策 DeviceVideoPlayback | ✅ 可用 | HarmonyOS 当前版本口径成功 4,250 / 失败 254;失败原因可分组 |
神策 CloudPlayback | ⚠️ 低样本 | HarmonyOS 当前版本口径仅 104 次;不能用于版本级结论 |
| 神策推送到达/点击事件 | ❌ 缺失 | 无法回答“收不到任何信息”是否由推送未到达导致 |
| Logan(Android) | ✅ 有效 | 257582、257639、257644、257637 可下载;前两条直接支撑问题 1 |
| Logan(HarmonyOS) | ❌ 零覆盖 | 非网络反馈 8 条 0 份日志,连续第 15 期 |
| 代码定位 | ✅ 正常 | Android 与 HarmonyOS 标准仓库均可读,关键调用链与状态缺口已定位 |
| 友盟 | ⏭️ 未调用 | 本期无崩溃、ANR、闪退类反馈 |
| TAPD | ⏭️ 未调用 | 本期为功能性根因分析,按 skill 规则不以历史 Bug 干扰判断 |
心愿单亮点
- 心愿单 5338:Android 8.4.1.6 用户提出增加线上商城,具备商品展示与转化入口价值,建议产品侧评估,但不构成本期研发问题。
- 其余 5 条为测试、重复或文本不完整,暂无产品化价值。
待补证
- 257582/257639 设备侧心跳停更:需回查设备 SN、固件、网关与 P2P 服务日志,确认
lastHeartTime为何停更 4~8 天后仍只有断电重启可恢复。 - 257637 具体失败入口:Logan 显示连接和播放成功,必须回访用户确认失败发生在哪个通道、页面或时段,否则不能纳入强证据。
- HarmonyOS Logan 连续 15 期零覆盖:需服务端与客户端共同定位上传、下载地址和保存链路,当前 8 条非网络反馈全部无法深挖。
- HarmonyOS 三条功能反馈逐条映射:在补齐日志前,不能把 257658、257589、257584 合并为同一根因。
- 推送与消息事件缺失:神策没有通知到达/点击/消息生成结果事件,无法验证“收不到任何信息”。
dev4gOnline=-1语义:需 owner 明确-1表示未知、设备 4G 离线状态不可用还是其他状态,避免 UI 过度确定。
下一期 = 第237期 = 2026-10-17-H09(明天早上 9:00;窗口 2026-10-16 17:00 ~ 2026-10-17 09:00)