灌糖包子 c5ef726134
移除验证码解析功能,简化为纯短信转发
- 删除 VerificationCodeParser 及相关测试,短信捕获和推送不再解析验证码
- 飞书推送改为只发送短信原文,时间戳格式化为可读日期
- 移除主界面"只推送验证码"开关和"调试时上传完整短信正文"选项
- 移除"保存轮询间隔"按钮,开启轮询时自动保存间隔(未输入默认1秒)
- 按钮文字从"开始1秒轮询验证码"改为"开始短信轮询"
- 删除"打印最近30条短信"功能及相关 SmsInboxReader.logRecentMessages
- SmsInboxReader 用 RecentSmsResult 替换 RecentCodeResult
- FeishuWebhookConfigStore.Config 移除 filterVerificationCode/sendFullBodyDebug
- 修复代码缩进不一致问题
2026-05-18 22:38:06 +08:00

3.6 KiB
Raw Blame History

1. Spec And Project Baseline

  • 1.1 评审本次 OpenSpec 的 proposal、design、specs、tasks 是否覆盖需求
  • 1.2 用 npx openspec validate build-sms-code-receiver-app 校验方案结构
  • 1.3 检查 Weather 项目的 Gradle、AGP、Kotlin/Java、compileSdk 配置,作为后续实现参考
  • 1.4 确认本次不处理 Android Studio、Gradle、JDK 重新安装
  • 1.5 后续提交或 push 前检查 diff避免引入非预期 EOF newline 变化

2. Android Skeleton

  • 2.1 基于 Weather 项目环境建立最小 Android app 工程骨架
  • 2.2 设置包名、minSdk、targetSdk、compileSdk并保持与现有可用环境兼容
  • 2.3 创建单 Activity 工具型界面,用于权限申请、状态展示和最近短信原文展示
  • 2.4 建立基础日志标签和 debug 开关

3. Permission And Diagnostics

  • 3.1 在 Manifest 声明 android.permission.RECEIVE_SMS
  • 3.2 实现 Android 运行时短信权限申请和权限状态刷新
  • 3.3 在 UI 展示权限状态、receiver 状态、最近接收时间和失败原因
  • 3.4 增加跳转应用详情页的入口,用于处理 HyperOS 权限或受限权限设置
  • 3.5 检测 Google Play services 可用性,为 SMS User Consent / Retriever 备选路径提供诊断

4. System SMS Broadcast Path

  • 4.1 实现 SMS_RECEIVED_ACTION BroadcastReceiver
  • 4.2 使用 Telephony.Sms.Intents.getMessagesFromIntent(Intent) 解析短信消息
  • 4.3 处理多段短信 body 合并、sender、timestamp 和 subscription id
  • 4.4 将 receiver 结果分发到应用状态层,避免在 receiver 内执行重任务
  • 4.5 在无权限、body 为空、读取失败时输出结构化失败原因

5. SMS Content Result Handling

  • 5.1 保存最近一次短信原文、时间、sender 摘要和来源
  • 5.2 支持多段短信 body 合并后的完整结果展示
  • 5.3 对最近结果提供失败原因和正文摘要
  • 5.4 保持手动读取、收件箱兜底和系统广播路径的结果结构一致
  • 5.5 不对短信原文额外做业务字段推断

6. Optional Google SMS APIs

  • 6.1 评估目标设备 Google Play services 是否可用
  • 6.2 预留或实现 SMS User Consent API 前台读取单条短信路径
  • 6.3 预留或实现 SMS Retriever API 获取 app hash 与受控短信模板验证
  • 6.4 在 UI 中区分系统广播、User Consent、Retriever 三种来源
  • 6.5 为 Google API 超时、不可用、用户拒绝授权输出明确诊断

7. Tests

  • 7.1 为短信读取状态层添加最近结果存储测试
  • 7.2 为短信广播读取链路添加多段正文样本测试
  • 7.3 为收件箱路径添加最近短信读取样本测试
  • 7.4 为正文为空、权限缺失和失败原因添加样本测试
  • 7.5 为短信接收状态层添加权限状态和失败原因测试

8. Xiaomi 12S / HyperOS 3 Device Validation

  • 8.1 前台打开应用时发送测试短信并验证接收结果
  • 8.2 应用退到后台时发送测试短信并验证接收结果
  • 8.3 锁屏状态发送测试短信,解锁后验证最近结果
  • 8.4 验证权限被拒绝、权限重新授予后的状态恢复
  • 8.5 如后台接收失败,记录 HyperOS 省电、后台运行、受限权限相关设置
  • 8.6 如 Google Play services 可用,验证 SMS User Consent API 前台授权读取

9. Delivery Criteria

  • 9.1 相关上下文逻辑分析通过
  • 9.2 OpenSpec validate 通过
  • 9.3 单元测试通过
  • 9.4 目标真机至少完成一条短信原文接收和展示
  • 9.5 诊断 UI 能解释无权限、未收到广播、未读取到短信正文三类失败