Seetong · Report

🎯 Seetong 问题雷达 09:00 第237期

时间窗口:2026-10-16 17:00:00 ~ 2026-10-17 09:00:00(Asia/Shanghai)

📌TL;DR 核心要点

  • 🔴 Android 与 iOS 8.4.1.6 出现报警功能突然失效、手机收不到报警信息的跨端反馈;6 条反馈来自 4 名用户,覆盖 2 个平台、4 个省级地区,严重度 90 / 100,置信度中。代表用户 257786 的 Android Logan 已确认系统通知权限开启、厂商推送方案为小米、push token 上传成功、三台设备服务端 devAlarm=1,但当日多次查询服务端报警列表始终为空;神策当前没有推送到达、展示或点击事件,无法判断故障发生在告警生成、推送调度还是厂商通道。新建任务 T-20261017-090729-9de7。
  • 现象描述:用户升级后收不到报警通知,或明确表示报警功能突然失效;部分用户补充重启、重新配置仍无效。
  • 涉及反馈共 6 条、4 名用户:

🔥最近一个月 Top 问题

按严重度与复发期数排序,已把跨期同类反馈归集;负责人由问题代码锚点对应的 Git 提交历史(blame / 近期主要提交者)反查;数据窗口:最近 30 天(截至 2026-10-17)。

#问题(严重度降序)严重度平台版本负责人问题原因
1Android 8.4.1.6 及 HarmonyOS 1.1.1.11 单设备随机离线、P2P 恢复失败
15 期 · 139 条反馈
100Android · HarmonyOS1.1.1.11 / 8.4.1.6 / 1.1.1陈宝旺、冉博麟、唐胜、许源257582、257639 已确认是服务端心跳长期停更并伴随 P2P 离线,App 只是按离线状态展示;问题更可能在设备端、设备网关/P2P 服务或固件恢复机制,而不是 Android 播放器单点故障。
2Android 与 iOS 8.4.1.6 报警功能突然失效与通知不达
1 期 · 3 条反馈
90Android · iOS8.4.1.6陈宝旺、许源现有客户端样本表明 Android 通知权限与 token 注册均成功,故障更接近“服务端未生成报警或推送任务未送达”,但神策缺少报警生成与推送到达事件,iOS 样本又混合了通知权限关闭,当前不能完成单点定因。
3升级后回放体验整体退化
4 期 · 18 条反馈
85Android · iOS8.4.1.6 / 8.3.14.2唐胜、许源、欧阳荣、谭伟8.4.1.6 对回放链路做了多处改动(时间条 UI、通道切换进度对齐、报警-录像联动),导致回放体验多点退化;Logan 显示取流层无崩溃,问题在"UI/状态对齐 + 报警录像关联"而非连接失败。
4KMP 回放页未申请屏幕常亮,回放中手机自动息屏
11 期 · 29 条反馈
84Android · HarmonyOS8.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,回放过程中发生系统级息屏。
5KMP 卡回放取「当天录像」时走云回放分支,失败后无超时兜底并反复重试
1 期 · 4 条反馈
71Android8.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) 固化到下一次。
6iOS 8.4.1.6 冷启动点击离线报警推送后未进入回放
1 期 · 2 条反馈
70iOS8.4.1.6 / 8.4.106欧阳荣、谭伟、陈宝旺当前冷启动没有留下通知响应回调或 KMP 回放路由证据,用户实际停留在普通启动链路;最可能的缺口是冷启动通知回调 / 参数分支未被当前处理逻辑承接或没有兜底,但尚不能确认是 APNs payload 缺 content、回调未到、视图条件拦截还是路由失败。
7Android 8.4.1.7 KMP 回放页关闭窗口无效
1 期 · 1 条反馈
70Android8.4.1.6 / 8.4.1.7唐胜、陈宝旺当前只能确认 KMP 回放页成功创建并出流、用户随后进入其他页面,无法确认关闭请求是否到达 closePage;最可疑点是关闭桥接缺少结果反馈,以及返回键存在双重消费路径,但尚未形成直证。
8iOS 灯光配置「提示失败 / 实际成功」——`NetworkIndicatorEnable="-1"` 非法值导致 1521 返回 -1
1 期 · 3 条反馈
68iOS8.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 已生效 → 用户看到「提示失败、实际成功」。
9Android 8.4.1.6 进入监控长期「一直加载」——`add_watch_result=-1` 连续失败 40 次、首帧迟至 105 秒
3 期 · 10 条反馈
66Android · iOS8.4.1.6唐胜、张威、谭伟、欧阳荣进入监控页时 P2P 通道尚未建立,客户端在 105 秒窗口内以约 10 秒为周期反复 addWatch(返回 -1)→ stopWatch 空转,且无首帧超时兜底,用户侧表现为「一直加载」。
10iOS 回放「当前同时播放人数已达上限」误触发——NVR 主设备与通道共享 `cloudId` 导致额度自占
1 期 · 1 条反馈
64iOS8.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 立即把它翻译成「当前同时播放人数已达上限」并强制停止回放、隐藏功能栏,用户表现为「回放看不了」。

🔴 问题 1:Android 与 iOS 8.4.1.6 报警功能突然失效与通知不达 | 负责人:陈宝旺、许源

现象与覆盖范围

  • 现象描述:用户升级后收不到报警通知,或明确表示报警功能突然失效;部分用户补充重启、重新配置仍无效。
  • 涉及反馈共 6 条、4 名用户:
  • 257786:Android 8.4.1.6,Redmi 24090RA29C,浙江杭州,原文“为啥更新后报警不报了”。
  • 257751:iOS 8.4.1.6,iPhone 26.4.1,四川,原文“手机收不到坚控报警信息呀?”。
  • 257740:iOS 8.4.1.6,iPhone 26.2,湖南湘潭,原文“今日起突然没有了报警功能,升级、重启等都试了也没用”。
  • 16650627731:iOS 8.4.1.6,iPhone 26.2,河南商丘,19:08 至 19:10 连提 3 次,描述夜间有人不报警、报警灯不亮、听不到报警声。
  • 覆盖维度:Android / iOS 双平台、8.4.1.6 单版本、至少 3 个机型、4 个省级地区,达到 3 个以上可核验维度。
  • 严重度评分:90 / 100(反馈量 30 / 共性 30 / 业务关键度 30)。报警通知属安防产品核心能力,但按 skill 口径归入“录像回放 / 报警 = 30”,不外推到设备离线级 40 分。
  • 口径边界:16650627731 的 3 条反馈同时包含设备侧侦测、报警灯和提示音未触发,不能单独证明 App 推送链路故障;257740 的日志上报 systemNotification=0,也无法排除用户关闭系统通知。因此目前只能确认“报警结果未到达用户”的跨端现象,不能确认所有样本均为同一客户端缺陷。

神策证据(核心数据源)

  • 事件可用性检查:查询 2026-10-14 至 2026-10-16、$app_version=8.4.1.6 且事件名包含 alarm、push、notif 或 message 的记录,返回 0 行。
  • 当前神策 SiteMessageClick 只能观察站内消息点击,不是离线推送到达、通知展示或点击事件,不能替代报警通知送达率。
  • 由于缺少“服务端告警生成、推送任务创建、厂商接受、客户端到达、通知展示、用户点击”链路事件,本问题无法给出全局影响面、版本趋势和漏斗断点。
  • 已确认 8.4.1.6 本身有大量其他事件数据,因此上述 0 行是报警与推送埋点缺失,不是整版本无数据。

Logan 关键日志(核心数据源)

  • 反馈 257786(Android 8.4.1.6 / Redmi 24090RA29C,17,432 行):
  • [L559]:AlarmMessagePage system notification permission result, granted=true, status=granted,系统通知权限已开启。
  • [L486]:SPush-getPushScheme result=xm;[L904] 生成小米 push token;[L1061]:SPush-Add push relation success :true。
  • [L487]:三台绑定设备均返回 devAlarm=1,设备侧报警开关未被服务端标记为关闭。
  • [L589]、[L2473]、[L4078]、[L5787]:03:23、03:36、04:07、07:46 四次请求 res_pull_device_alarm_list 均返回 code=200,但 deviceAlarmList=[];KMP queryAlarmMessages success ... itemCount=0。
  • [L936]、[L2734]、[L4277]:小米推送服务多次收到 RECEIVE_MESSAGE 后记录 receiving an empty message, drop,未出现可解析的报警 title / description payload。
  • 证据边界:空列表可能代表该账号在该时段确实没有产生报警,也可能代表服务端未生成告警,不能仅凭空列表判定客户端漏报。
  • 反馈 257751(iOS 8.4.1.6 / iPhone 26.4.1,7,170 行):
  • [L1188]:应用以 systemNotification=1&pushSchemes=apns 请求推送方案,说明上报时系统通知权限处于开启状态。
  • 全量检索 didReceiveNotificationResponse、willPresentNotification、ReceivePushMessage、收到离线推送,均未出现匹配记录。
  • 证据边界:日志中没有通知回调,不等于系统没有展示通知;iOS 通知展示不一定会写入 Logan,只能确认该日志未覆盖可验证的推送到达链路。
  • 反馈 257740(iOS 8.4.1.6 / iPhone 26.2,41,042 行):
  • 多次推送方案请求均为 systemNotification=0&pushSchemes=apns,与用户“突然没有报警功能”同时出现。
  • 该样本首先需要核对 iOS 系统通知权限和专注模式,不应直接归因于 App 版本;它反而说明跨端结论尚不闭合。

代码定位与证据缺口

  • 涉及模块:Android 推送注册与接收、iOS APNs 注册与通知回调、KMP 报警消息列表、服务端报警生成与推送调度。
  • Android 关键链路:PushUtils.java:107-113 接收 push token 后调用 addPushRelation();PushUtils.java:491-525 异步上传 token,成功或失败仅写日志,没有状态回执、重试或埋点;StPushReceiver.kt:39-69 分别处理通知到达、点击和注册结果;LibImpl.java:5385-5450 解析报警 title / description。
  • Android 关键缺口:LibImpl.java:5443 的本地报警保存仍处于注释状态;通知到达路径没有可持久化的成功标记,也没有“服务端生成、厂商接受、客户端到达”三阶段对应事件。
  • iOS 关键链路:AppDelegate.m:492-525 获取 deviceToken;AppDelegate.m:536-607 处理通知点击和前台展示;STDeviceListEventService.m:110-131 上报 systemNotification。
  • KMP 关键链路:AlarmMessagePageViewModel.kt:1869-1929 查询服务端报警列表,并以 itemCount 写日志;AlarmMessage.java:317-356 通过 WebSocket 请求 res_pull_device_alarm_list。
  • 结构性缺口:服务端返回 code=200 + 空数组 时,客户端无法区分“确实没有报警”和“告警未生成 / 推送未调度”;现有日志也没有厂商通道回执,因此无法从客户端单侧闭眼修复。
  • 修复方向锚点:
  1. 服务端与推送平台补端到端事件:告警生成、推送任务创建、厂商接受 / 拒绝、APNs 接受、客户端到达、通知展示、用户点击。
  2. Android PushUtils.addPushRelation() 增加 token 绑定结果校验和失败重试;StPushReceiver.kt 对到达 payload 写入结构化日志,并补设备、告警类型、时间、pushServer、消息 ID。
  3. iOS 在 didRegisterForRemoteNotificationsWithDeviceToken、didFailToRegisterForRemoteNotificationsWithError、didReceiveNotificationResponse、willPresentNotification 四处补统一事件,区分注册失败、系统未展示和用户点击。
  4. 告警列表接口增加明确状态字段或服务端 requestId,避免 code=200 + 空列表 同时承载“无数据”和“查询链路异常”。

根因结论

  • 置信度:🟡 中。
  • 一句话根因:现有客户端样本表明 Android 通知权限与 token 注册均成功,故障更接近“服务端未生成报警或推送任务未送达”,但神策缺少报警生成与推送到达事件,iOS 样本又混合了通知权限关闭,当前不能完成单点定因。
  • 关键证据链:4 名用户、6 条反馈形成跨端症状聚类;257786 的 Logan 证明客户端注册链路成功,同时服务端报警列表连续为空;257751 证明 iOS 权限开启后仍没有可观测的推送到达日志;神策 0 行推送事件证明当前观测链路本身不完整。

建议下一步

  • 分配给:报警推送服务 owner 牵头,Android / iOS 推送 owner 与 KMP 消息页 owner 协同。
  • 优先处理项:先查 257786 对应账号在 10 月 17 日的服务端告警生成记录与小米推送回执;再查 257751 的 APNs token、发送记录和系统通知开关;同时回访 257740 确认 iOS 通知权限与专注模式。
  • 验证方法:Android 与 iOS 8.4.1.6 各至少 2 台真机,分别覆盖前台、后台、杀进程三态;验收要求为服务端生成告警后有可追踪 requestId,厂商通道有接受回执,客户端到达事件与通知展示事件可区分,用户无需重启即可收到。
  • 任务账本:新建 T-20261017-090729-9de7,状态 P1 / captured。与 T-20261016-090737-bec4 相关但不合并,后者处理“收到推送后冷启动未进入回放”,本任务处理“报警未生成或通知未到达”。

本期全量扫描与排除

下表按互斥关键词簇汇总本窗口 134 条反馈;网络类按 skill 规则整体排除,单点或证据不足项不进入本期 TOP。

关键词簇反馈数分类处置
-102 手机网络模板95🟣 普遍网络问题已排除
其他网络不可用描述1🟣 普遍网络问题已排除
报警不报 / 收不到报警信息 / 报警功能消失6🔴 进雷达详细分析见问题 1
回放 / 录像不可见或跳段4🟠 候选症状分别为无录像、跳段、切通道时间不延续,缺少共同根因,暂不硬合并
自动离线 / 设备离线3🟠 重复或单点257791 属上一期已分析同族,沿用 T-20261016-170803-b4da;其余 2 条证据不足
页面或播放卡顿1🟡 单点待补证有 Logan,但描述无具体业务操作链
iOS 登录失败 301002251🟡 单点待补证需结合登录事件与账号状态复核
客服响应 / 服务投诉4🟤 非技术问题同一 HarmonyOS 用户连提 3 条,另有 1 名用户投诉等待时间
摄像机卡不存在 / 4G 卡退款 / 网线流量提示 / 分享码 / 缴费 / 半屏 / 音量7🟡 业务或单点咨询不构成跨用户功能故障
无效文本 / 无关内容 / 其他单点12🟢 无效或待补证不进入雷达

已分析过而不重复占群

  • 257791“老是自动离线且需断电重启”与上一期 257582、257639 同族,继续沿用 T-20261016-170803-b4da,不重复计入本期问题 1。
  • 回放与录像相关 4 条:257781(Android,看不到回放记录)、257756(Android,没有回放录像)、257747(HarmonyOS,录像跳段且有一段看不到)、257669(Android 8.4.1.6,切换通道后未沿用前通道回放时间)。257756 的 Logan 可见设备具备 RemotePlayback 权限、云存与卡回放广告接口正常返回,但没有覆盖“查询无录像”的直接失败分支;257669 与既有时间轴状态任务同域。本期记录为待补证,不把四个不同症状强合并。
  • 257790 的 iOS 登录失败码 30100225 仅 1 条,未达到雷达阈值;下期若继续出现再并入登录链路分析。

心愿单亮点

  • 5351:希望设备加入温度检测,适合提升硬件卖点与场景覆盖,建议产品侧评估。
  • 5350:对讲增加“电话模式”,可改善多人对话时的听清和互不干扰体验,建议产品侧评估交互成本。
  • 5349:WiFi、4G、有线模式自由切换,属于设备与网络配置能力,建议评估现有能力边界后回应。
  • 5348:删除不使用的监视位,可降低分屏操作成本,适合作为低风险体验优化候选。
  • 5347:夜间画面保持彩色,需结合红外、补光和夜视能力评估,不宜直接承诺。
  • 5346:增加车辆识别,存在明确安防场景,但涉及模型和算力成本,建议进入产品评审池。
  • 5345:设备升级后回放不同步,属于功能回归诉求而非新增能力,已与回放候选簇关联。

数据源状态与任务

数据源状态说明
反馈平台✅ 正常total=134 / fetched=134 / complete=true / pages=3;窗口 2026-10-16 17:00:00 ~ 2026-10-17 09:00:00
心愿单✅ 正常total=9 / fetched=9 / complete=true;主要为产品建议与文本不完整内容
神策推送与报警事件❌ 缺失8.4.1.6 在 10-14 ~ 10-16 查询 alarm / push / notif / message 事件返回 0 行;无法量化送达率
Logan(Android)✅ 有效257786 可直接证明通知权限、push token、设备报警开关和服务端报警列表状态
Logan(iOS)⚠️ 部分有效257751 可证明上报通知权限开启但无推送回调;257740 上报系统通知关闭,样本边界明显
代码定位✅ 正常已覆盖 Android 推送注册 / 接收、iOS APNs 回调、KMP 报警列表与服务端查询桥接
友盟⏭️ 未调用本期无崩溃、ANR、闪退类反馈
TAPD⏭️ 未调用本期为功能性根因分析,按 skill 规则不以历史 Bug 干扰判断

任务账本联动:

  • 新建 T-20261017-090729-9de7:核查 Android/iOS 8.4.1.6 报警功能突然失效与通知不达,P1 / captured。
  • 关联 T-20261016-090737-bec4:冷启动点击离线报警推送未进入回放,与本问题同属报警推送域,但症状和修复边界不同。
  • 沿用 T-20261016-170803-b4da:Android 8.4.1.6 单设备随机离线,本期 257791 只作为延续样本,不重复深挖。

待补证

  1. 服务端告警生成:需按 257786 的账号、设备 ID 和时间窗口查询告警事件表,确认 10 月 17 日凌晨至上午是否真正产生了报警。
  2. 厂商推送回执:需查小米推送针对 257786 的设备 token、任务 ID、接受状态和错误码;APNs 侧查 257751 的 token 与发送记录。
  3. iOS 权限真实性:257740 的 systemNotification=0 需由用户确认通知权限、专注模式和 App 通知分组是否关闭,避免把用户设置误判为版本故障。
  4. 端到端埋点:需补告警生成、推送任务、厂商接受、客户端到达、通知展示与点击事件;在补齐前不能给出报警送达率。
  5. 报警列表空态语义:需服务端区分“该时段无报警”和“告警查询 / 生成异常”,并为每次查询返回 requestId。
  6. 设备侧报警链路:16650627731 的报警灯和声音均未触发,需同时核对设备侦测配置、固件和联动规则,不能只查手机通知。

下一期 = 第238期 = 2026-10-17-H17(今天下午 17:00;窗口 2026-10-17 09:00 ~ 17:00)

🗂️历史期次

查看全部历史期次(近 90 天)→