🎯 Seetong 问题雷达 17:07 第75期
时间窗口:2026-07-27 09:00 ~ 17:07(过去 8h)
TL;DR 核心要点
- 🔴 Harmony 1.1.1.6 摄像头离线/连接不上集群(严重度 100/100,置信度 🟡 中)
- 🟠 Harmony 1.1.1.6 看不到回放集群(严重度 80/100,置信度 🟡 中)
- 反馈量 30:8 条记录 8h 内,5 条满分档
最近一个月 Top 问题
按严重度与复发期数排序,已把跨期同类反馈归集;负责人由问题代码锚点对应的 Git 提交历史(blame / 近期主要提交者)反查;数据窗口:最近 30 天(截至 2026-07-27)。
| # | 问题(严重度降序) | 严重度 | 平台 | 版本 | 负责人 | 问题原因 |
|---|---|---|---|---|---|---|
| 1 | 设备离线/P2P 通道失败(5 条 8h) 1 期 | 90 | — | 8.2.1.3 / 8.3.10.2 / 8.3.12.5 | 唐胜、许源、张威 | 用户设备 lastHeartTime 自 2026-07-03 02:25 起完全停止(用户尝试断电重启无效),客户端 TPS_MSG_P2P_OFFLINE 反复触发导致离线提示循环,但设备侧的物理掉线才是真实根因 |
| 2 | 回放入口/状态映射异常:无存储能力设备仍露出回放入口 2 期 | 70 | Android | 1.1.0.9 / 8.3.12.5 / 8.1.2.4 | 唐胜、张威 | 回放入口与录像状态 UI 主要依赖 sdRecordStu/权限,但未同步校验 NO_LOCAL_STOARGE 与 SDCardState=0,导致无存储能力设备仍可能暴露回放预期或状态显示异常。 |
| 3 | 在线看不到 1 期 | 70 | Android | 8.3.13.3 | 张威、唐胜 | NVR 通道预览链路在握手后立即被底层判为 PeerOffLine,APP 按现有逻辑只做快速重试,没有把通道离线与临时连接抖动区分开,最终表现为“在线看不到”。 |
| 4 | 设备离线/掉线后无法预览 1 期 | 70 | Android · iOS | 1.1.1.6 / 8.2.2.1 / 8.3.13.3 | 唐胜、张威 | 设备预览链路在收到 TPS_MSG_P2P_OFFLINE 后直接走离线兜底分支,UI 进入“该设备不在线”,而自动恢复逻辑又被离线判断短路,导致用户感知为“掉线后无法再连上”。 |
| 5 | 录像回放缺失 — 无 SD 卡的设备被直接引导云存购买(产品设计问题) 1 期 | 65 | Android · iOS | 8.3.12.5 / 8.3.13.3 / 8.3.13.4 | 张威、唐胜、陈宝旺 | 无 SD 卡 + 未开通云存的设备,在 NVR 回放协议响应无效时直接跳转云存购买页,没有任何"为什么没录像"的说明,用户感知是"以前能看现在不能" |
| 6 | 设备二维码模糊/找不到(3 条 8h) 1 期 | 65 | — | 8.3.12.5 | 待定 | (本期未收敛到单一根因) |
| 7 | Android NVR 回放/预览偶发不出图,断开重连后恢复 1 期 | 60 | Android | — | 唐胜、张威 | NVR 回放/预览链路在首次 addWatch + 查询录像时间片 阶段存在瞬时失败,UI 侧又把多类失败统一收敛为空/超时,导致用户感知为“不出图,重连才恢复”。 |
| 8 | Android 监控预览 addWatch 失败 + 10 秒循环重试 1 期 | 60 | Android | 8.3.13.3 | 唐胜 | Android 端 LibImpl.startPlay 把 addWatch 返回的 P2P 断连错误码(-1)通过 if (ret == SDK_CONSTANT.ERR_P2P_DISCONNECTED) ret = 0; 强制归零,导致上层误以为流启动成功,进入 10 秒循环重试;用户看到的"长时间缓冲"实质是 10 秒 × N 次的循环重试视觉感受 |
| 9 | iOS 8.3.12.6 灰度放量新症状 4 期累计扩散 1 期 | 60 | iOS | 8.3.12.5 / 8.3.12.6 | 欧阳荣、谭伟 | iOS 8.3.12.6 客户端第三方微信登录→绑定手机号→触发滑动验证→重发短信验证码的全链路(BindNewPhoneOrEmailViewController.m:317-378)均正常工作,服务端短信下发接口返回 200 成功,根因在第三方短信通道商下发链路(运营商拦截 / 短信网关失败 / 用户手机短信拦截),非客户端代码问题。 |
| 10 | iOS 8.3.4.3 老版本"网络正常情况下掉线 + 语音提示循环" 1 期 | 60 | iOS | 8.3.12.5 / 8.3.4.3 / 8.3.7 | 待定 | iOS 8.3.4.3 老版本在网络瞬断时,"网络连接正等待"语音提示无频率限制,导致循环播放;神策 7-1 数据未显示掉线激增,非全量问题。 |
🔴 问题 1:Harmony 1.1.1.6 摄像头离线/连接不上聚集(详细分析) | 负责人:冉博麟、李国涛
1. 现象与覆盖范围
现象描述(已脱敏):5 个不同 Harmony 用户在 8h 内反映摄像头反复离线或断网后无法自动重连,表现为"Wi-Fi 好用但摄像头显示离线""断网后不能重新联网""老是断网""摄像头通电正常但显示离线"。
涉及反馈:8 条 / 5 distinct users / 5 设备型号 / 1 平台版本
| # | 反馈 ID | 用户 | 设备型号 | 现象 | 时间 |
|---|---|---|---|---|---|
| 1 | 238670 | 18611304483 | CHZ-AL00 | 断网后不能自动连接 | 16:45 |
| 2 | 238667 | 18611304483 | CHZ-AL00 | 为什么断网后不能重新联网 | 16:39 |
| 3 | 238663 | 17669890345 | SUP-AL90 | Wi-Fi 好用但摄像头离线 | 16:10 |
| 4 | 238662 | 17669890345 | SUP-AL90 | (同用户刷屏) | 16:10 |
| 5 | 238661 | W_XYbdLIiRjz | PLR-AL00 | 老是断网 | 16:04 |
| 6 | 238654 | 15805551851 | SCA-AL00 | 摄像头通电正常显示离线 | 15:39 |
| 7 | 238608 | 15324586856 | PSN-AL00 | 还是连接不上 | 12:45 |
| 8 | 238607 | 15324586856 | PSN-AL00 | (同用户刷屏) | 12:45 |
设备型号分布:CHZ-AL00 / SUP-AL90 / PLR-AL00 / SCA-AL00 / PSN-AL00(5 款 HUAWEI)
地区分布:陕西西安 / 山东青岛 / 山东德州 / 安徽马鞍山 / 内蒙古通辽(5 城)
Harmony 版本:1.1.1.6(HarmonyOS NEXT)
App 渠道:全部 Harmony 客户端
严重度评分:100/100(反馈量 30 + 共性 30 + 关键度 40)
- 反馈量 30:8 条记录 8h 内,>5 条满分档
- 共性 30:4 维(平台 Harmony / 版本 1.1.1.6 / 设备型号 5 款 / 地区 5 省)≥3 维
- 关键度 40:设备掉线/远程查看 = 最高档
2. 神策证据(核心数据源)
- 基线
SiotDevConnectResult(SIOT 设备连接结果):7/21~7/26 日均 103~111 万 UV / 354~391 万 PV,趋势平稳无恶化。7/27 半日 86.43 万 UV(折算全天约 170 万,比 7/26 高 53%,但仅反映 Android/iOS 端的 SIOT 设备活跃度) - 按
app_version分组:8.3.13.3(2186804/天)/ 8.3.1304(911129/天)/ 8.3.12.5(164407/天)—— 未发现 1.1.1.6 Harmony 版本(SiotDevConnectResult 不覆盖 Harmony 客户端),数据仅能间接印证 Android/iOS 端连接正常 - 重要限制:Harmony 1.1.1.6 用户在神策中没有 SiotDevConnectResult 事件流(Harmony 走另一套 SDK 上报链路),无法直接按 OS=Harmony 拆解连接失败率
置信度评估:🟡 中。神策无法直接给出 Harmony 集群信号(基线只能反向印证"Android/iOS 正常,问题在 Harmony 客户端侧"),需依赖反馈文本 + 代码定位
3. Logan 关键日志(核心数据源)
8h 内 Harmony 反馈的 loganFileDownloadUrl 全部为空(238663/238670/238667/238661/238654/238608/238654 均未提供 Logan)。SKILL.md #4 已知 pattern:Harmony 客户端不在 Logan 收集范围
参考 Logan:238620(HUAWEI ALT-AL10 / Android / 8.3.13.3 / "手机无法连接")13:00 ~ 13:10 共 59233 行,关键证据:
-102错误 415 次(HTTP/HTTPS 服务端失败,主导原因)-101错误 38 次(网络不可达)ssl_connect失败 167 次(TLS 握手层异常)TPS_MSG_P2P_OFFLINE dev4gOnline=-1多次触发(devId 36646860/37329959/36646912/35349098 多个设备)WSManager-Get netty server url failed, code:-102; reConnectCount:1,2,3(netty 服务器获取失败)
关键栈(从 238620 提取的 Android 设备侧 P2P 离线路径):
LibImpl-doMsgRspCB devId=35349098 TPS_MSG_P2P_OFFLINE dev4gOnline=-1
→ AutoResumePlay-TPS_MSG_P2P_OFFLINE devId=35349098
→ PreviewPlayerView-showHelpButton: true devId=35349098
说明:238620 是 Android 客户端,不是 Harmony。但日志表明 -102 / TPS_MSG_P2P_OFFLINE / Netty 服务端失败的完整路径。Harmony 1.1.1.6 的相同 TPS_MSG_P2P_OFFLINE 信号需要走另一套 Harmony SDK,但 Harmony 没有 Logan 上报
4. 友盟证据
⏸️ 跳过(用户反馈未提"崩溃/闪退/卡死/ANR/黑屏",按 SKILL 流程仅崩溃/ANR 类问题查友盟)
5. TAPD 关联
⏸️ 跳过(无已知 BUG 单号 / 反馈未引用 TAPD,按 SKILL 流程功能性根因分析不查 TAPD)
6. 代码定位(详细)
关键代码锚点:Seetong-App-Harmony/feater/playDevice/src/main/ets/view/ViewPage.ets:226-251
// 设备连接/断开状态监听
private devConnectEvent: DevConnectEvent = (devId: string, status: DeviceConnectStatus) => {
if (!this.isTop) { return }
let isUpdate = (devId && (this.currentDevId == devId || this.displayDevIdList.includes(devId)) && !DeviceUtils.isSIOTPlatform(devId))
if (!isUpdate) { return }
// 非SIOT设备收到TPS_MSG_P2P_CONNECT_OK进行重新求流
if (status == DeviceConnectStatus.TPS_MSG_P2P_CONNECT_OK || status == DeviceConnectStatus.TPS_MSG_P2P_NVR_CH_ONLINE) {
this.devService?.stopPlayDevice(devId)
ViewPageUtil.playDevice(devId, this.articulation, this.isTop)
this.getCapacity();
...
} else if (status == DeviceConnectStatus.TPS_MSG_P2P_NVR_CH_OFFLINE || status == DeviceConnectStatus.TPS_MSG_P2P_OFFLINE) {
console.log('cbw', '监听到设备' + devId + '离线')
if (this.currentDevId == devId) {
this.devState = DevState.OFFLINE
}
emitter.emit(deviceInfoEvent, {
data: { 'devId': devId }
});
}
}
调用链:Harmony SDK TPS_MSG_P2P_OFFLINE → DevConnectEvent.devConnectEvent → 只设置 OFFLINE 状态 + emit 事件
关键分支:当设备 TPS_MSG_P2P_OFFLINE 时:
- ✅ 设置
devState = DevState.OFFLINE(UI 显示离线) - ✅
emitter.emit(deviceInfoEvent)通知其他组件刷新 - ❌ 没有主动重连逻辑(无 setTimeout / 无 addWatch 重发 / 无网络可用监听)
对比 Android 同等实现:Seetong-App-Android/Seetong5.0ForSeetong/Seetong5.0/device_list/src/main/java/com/seetong/devicelist/view/VideoPlayerView.kt:105-127 有明确的"唤醒指令 3s 后进行重连"逻辑(pauserPlay() + autoStartPlay()),Harmony 没有此重连机制
修复方向锚点:
- 在
devConnectEvent的 OFFLINE 分支增加 网络可用时自动重连(参考 Android VideoPlayerView.kt 的 awakenLowPowerDevices + pauserPlay + autoStartPlay 流程) - 或在 Harmony SDK 层监听 Netty/网络可用回调,触发 SDK 重连 TPS_MSG_P2P_CONNECT_OK 后再走 ON 分支
7. 根因结论
- 置信度:🟡 中(Harmony 无 Logan、神策无 Harmony OS 拆分,证据链有 gap)
- 一句话根因:Harmony 1.1.1.6 客户端
ViewPage.ets:226-251设备离线分支缺少自动重连机制,设备进入 OFFLINE 态后只更新 UI,不主动调用 SDK 重连;Android 端VideoPlayerView.kt:105-127有等价的"3s 后重连"逻辑但 Harmony 未实现 - 关键证据链:
- 5 distinct users 8h 内报"摄像头离线/断网后无法重连"全部为 Harmony 1.1.1.6
- Harmony 客户端 ViewPage.ets:226-251 OFFLINE 分支只设置状态,未触发 SDK 重连
- Android 同等逻辑 VideoPlayerView.kt:105-127 有"3s 后重连"实现
- 神策基线(SiotDevConnectResult)显示 Android/iOS 端连接正常,问题锁定在 Harmony 客户端侧
8. 建议下一步
- 分配给:Harmony 端研发(建议陈宝旺对接)—— 1.1.1.6 在 V8.4.0.x 提测当天
- 优先处理项:
- 在
ViewPage.ets:248增加监听网络可用的回调,网络可用时调用ServiceManager.getInstance().getService<IDeviceListService>(...)?.reconnectDevice(devId)或主动ViewPageUtil.playDevice(devId) - 复用
ReplayPage.ets:436已有的addDeviceConnectStatesListener(TPS_MSG_P2P_CONNECT_OK)模式,注册监听后等待 SDK 回调重连
- 验证方法:1.1.1.6 灰度包针对 HUAWEI CHZ-AL00 / SUP-AL90 等 5 款机型做"断网→复网"场景回归;观察 SiotDevConnectResult(或 Harmony 等价事件)下 TPS_MSG_P2P_CONNECT_OK 触发率
🟠 问题 2:Harmony 1.1.1.6 看不到回放/报警录像集群(详细分析) | 负责人:李国涛、冉博麟
1. 现象与覆盖范围
现象描述:2 个 Harmony 用户在 8h 内反映录像回放页面无法加载录像,包括"看不到回放是什么问题""看不到报警回放"等。
涉及反馈:4 条 / 2 distinct users / 2 设备型号
| # | 反馈 ID | 用户 | 设备型号 | 现象 | 时间 |
|---|---|---|---|---|---|
| 1 | 238658 | W_nslyRWvP9r (13985256525) | VYG-AL30 | 看不到回放是什么问题 | 15:48 |
| 2 | 238657 | W_nslyRWvP9r (13985256525) | VYG-AL30 | (同用户刷屏) | 15:48 |
| 3 | 238656 | W_nslyRWvP9r (13985256525) | VYG-AL30 | 看不到回放是什么原因 | 15:47 |
| 4 | 238643 | 13455232639 | MIA-AL00 | 怎么看不到报警回放 | 14:48 |
严重度评分:80/100(反馈量 20 + 共性 30 + 关键度 30)
- 反馈量 20:4 条 / 2 distinct users 落在 3-5 条档
- 共性 30:3 维(Harmony / 1.1.1.6 / HUAWEI 品牌 + 回放业务)刚好达标
- 关键度 30:录像回放(中等关键度)
2. 神策证据(核心数据源)
NvrDeviceVideoPlayback(NVR录像回放事件):7/21-7/26 日均 1-2 unique / 29-230 total。该事件量级小,无法直接体现 Harmony 集群信号- 神策无法给出 Harmony 1.1.1.6 集群信号(与 TOP 1 同因)
3. Logan 关键日志
所有 Harmony 1.1.1.6 反馈的 loganFileDownloadUrl 全空(238643/238656/238657/238658 均未提供 Logan),按 SKILL.md #4 跳过该数据源
4. 代码定位(详细)
关键代码锚点 1:Seetong-App-Harmony/feater/playDevice/src/main/ets/view/replay/ReplayPage.ets:432-446
// 监听 devId 上线
ServiceManager.getInstance()
.getService<IDeviceListService>(ServiceManager.SERVICE_MANAGER_IDEVICE_LIST)
?.addDeviceConnectStatesListener(this.REPLAY_TAG, this.devId,
DeviceConnectStatus.TPS_MSG_P2P_CONNECT_OK, async () => {
this.isWakeUp = false
this.initDate() // 设备上线后才重新初始化日期/数据
})
关键发现:
- ReplayPage 只在低功耗设备唤醒后 才注册
TPS_MSG_P2P_CONNECT_OK监听(lowPowerDevice 路径) - 普通设备未注册上线监听 —— 如果设备在进入回放页面前处于 OFFLINE 态,回放页面会一直停在"无数据"或空态,不会自动重试
关键代码锚点 2:feater/playDevice/src/main/ets/view/replay/component/SdCardRePlayPage.ets:194
// 设备离线 -- 只在SD卡中用到 --- 目前未赋值
注释暴露:设备离线 状态字段在 SD 卡回放场景下未实现赋值,意味着离线态被静默吞掉
修复方向锚点:
ReplayPage.ets普通设备(非低功耗)路径同样注册addDeviceConnectStatesListener(TPS_MSG_P2P_CONNECT_OK),触发this.initDate()重新加载回放列表SdCardRePlayPage.ets:194的"设备离线"状态需补全 OFFLINE → ON 切换逻辑,否则空态会持续
5. 根因结论
- 置信度:🟡 中(无 Logan、无 Harmony 神策拆分,但代码定位证据明确)
- 一句话根因:Harmony 回放页面缺少对设备上线的监听和重试机制,进入回放页时设备若处于 OFFLINE 态则一直空态;且 SD 卡回放页面"设备离线"状态字段未实现赋值
- 关键证据链:
- 2 distinct Harmony 1.1.1.6 用户报"看不到回放"—— VYG-AL30 + MIA-AL00,HUAWEI 原生 HarmonyOS
ReplayPage.ets:432-446只在 lowPowerDevice 唤醒场景注册上线监听SdCardRePlayPage.ets:194注释"目前未赋值"—— 离线状态被静默吞掉
6. 建议下一步
- 分配给:Harmony 端研发(陈宝旺 / 鸿蒙组)
- 优先处理项:
- 把
ReplayPage.ets:432-446的addDeviceConnectStatesListener从低功耗分支移到普通设备else分支共用 SdCardRePlayPage.ets:194补全设备离线状态赋值(参考ViewPage.ets:248的devState = DevState.OFFLINE写法)
- 验证方法:用 HUAWEI VYG-AL00 / MIA-AL00 在断网后进入回放页面,复网后观察是否自动重试加载录像
数据源状态
| 数据源 | 状态 | 详情 |
|---|---|---|
| 神策 | ✅ 部分可用 | SiotDevConnectResult 基线正常;但 Harmony OS 未拆分,无法直接拉 Harmony 1.1.1.6 集群信号 |
| Logan | ❌ 降级 | 全部 7 条 Harmony 1.1.1.6 反馈的 loganFileDownloadUrl 为空(已知 pattern);用 Android 238620 作为参考路径 |
| 友盟 | ⏸️ 跳过 | 用户未提崩溃/ANR,按 SKILL 不查 |
| TAPD | ⏸️ 跳过 | 无 BUG 单号 / 反馈未引用,按 SKILL 功能根因不查 |
| 代码定位 | ✅ 完成 | ViewPage.ets:226-251 + ReplayPage.ets:432-446 + SdCardRePlayPage.ets:194 全部定位 |
本期扫描全量(全部沉淀到知识库)
| # | 关键词 | 反馈数 | 分类 | 处置 |
|---|---|---|---|---|
| 1 | Harmony 1.1.1.6 摄像头离线/连接异常 | 8 | 🔴 进雷达 TOP 1 | 100 分 → 详细分析见上 |
| 2 | Harmony 1.1.1.6 看不到回放 | 4 | 🟠 进雷达 TOP 2 | 80 分 → 详细分析见上 |
| 6 | vivo V2130A "于皓宇" (238669) | 1 | 🟢 主观/操作 | 误输入排除 |
| 7 | Harmony 帧率设置 bug (238601) | 1 | 🟡 单设备 | 设备侧 bug,已知模式 |
| 8 | Harmony 还是连接不上 HUAWEI PSN-AL00 (238607+238608) | 2 | 进 TOP 1 | 已在 TOP 1 内分析 |
| 9 | Android vivo 加载卡60 (238642) | 1 | 🟡 单设备 | 监测 |
| 10 | Android vivo 对讲无声 (238600) | 1 | 🟡 单设备 | 监测 |
| 11 | Android HUAWEI 手机无法连接 (238620) | 1 | 🟡 单设备 | Logan 提示 -102 服务端 |
| 12 | Android vivo 晚上不清楚 (238648) | 1 | 🟡 单设备 | 监测 |
| 13 | iOS 8.3.13.4 老是离线 (238576) | 1 | 🟡 单设备 | iOS 灰度持续监测 |
| 14 | Harmony 怎么联系人工客服 (238616) | 1 | 🟢 操作 | 排除 |
| 15 | 3497 💕 心愿单 | 14 | 🟤 心愿单 | 已收录 14 条心愿单建议 |
| 16 | 单字符/无语义反馈 | 5 | 🟢 主观 | 排除 |
已折叠 3 条普遍性网络问题(含-102/-101/-1002与中/英/俄/法/西/葡/土/阿/日多语言网络提示模板,如Проверьте телефонную сеть、Please check your mobile network);全量明细见同名 Markdown 知识库。
待补证
- Harmony 1.1.1.6 神策事件流:与神策侧沟通 Harmony 客户端是否单独上报到事件流,便于后续按 OS=Harmony 拆分分析
- Logan Harmony 接入:建议后续跟 Logan 团队确认 Harmony 客户端是否纳入收集范围
- 离线重连验证:建议灰度包修复后用 HUAWEI CHZ-AL00 / SUP-AL00 等机型做"断网→复网"场景回归
下一期 = 第76期 = 2026-07-28-H09(明天早上 9:00) 锚点已写入报告末尾
本消息由 Seetong小助手 自动生成,欧阳荣 监督发布。