## Summary - add a root README with project overview, setup, usage, architecture, security, and contribution guidance - replace stale planning and requirement notes with current 1.0 project overview - update architecture and hardware validation docs to match the implemented app - remove obsolete UI branch notes and the old Java/XML AsyncTask example - remove the superpowers documentation and move vendor ABSDK references into docs/vendor - preserve vendor Markdown and XLS content byte-for-byte ## Verification - Markdown relative links checked - vendor files verified as 100% Git renames - git diff --check passed - no application tests run; documentation-only change Reviewed-on: #15 Co-authored-by: KremeCN <3265494849@qq.com>
3.8 KiB
3.8 KiB
红外控制器硬件验证
范围与安全要求
本流程只用于已授权的隔离局域网和实体设备。测试记录使用脱敏 profile、设备和操作标识,不记录密码、Token、完整网关地址、完整硬件标识、原始 SDK 响应或红外码值。
真机验证必须使用 ABox Provider。本地体验只能验证界面和状态机,不能作为红外硬件通过证据。
前置条件
- 使用与待发布提交一致的 APK;
- 已通过 ABox 登录并进入设备中心;
- 网关中的红外设备名称与 App 当前设备名称一致;默认名称为
红外控制器; - 红外控制器已通电,并可对准一个获授权的实体电视、空调、风扇或其他设备;
- 系统时间、网络和通知权限状态已记录。
验证流程
1. 默认内容与管理页
- 首次进入红外控制器,确认存在“自定义电视遥控器”和“自定义面板遥控器”。
- 打开管理页,确认硬件槽位位于顶部。
- 确认每个遥控器提供排序和编辑入口,而不是列表内直接删除。
- 修改红外控制器设备名称后,确认后续网关调用使用新名称;名称与网关不一致时应明确失败。
2. 添加预置遥控器
- 点击添加遥控器。
- 第一步选择从红外码库下载预置遥控器。
- 选择一种可用设备类型与预置项并完成下载。
- 确认新遥控器出现在列表末尾,并位于遥控器页面导航的最右端。
- 发送多个按键,确认实体设备响应,界面显示真实操作结果。
- 确认预置遥控器没有学习入口。
- 记录逐项下载失败时的状态,确认部分失败不会被显示为全部成功。
3. 添加自定义遥控器
- 再次点击添加遥控器。
- 第一步选择通过学习模式创建自定义遥控器。
- 分别验证电视布局和自定义面板布局。
- 在自定义面板中添加新按钮,编辑名称并调整顺序。
- 确认新按钮初始状态为“未学习”,而不是“学习失败”。
4. 学习与发送
- 对一个未学习按钮开始学习,并在物理遥控器上发送信号。
- 确认状态从未学习进入学习中,再进入可发送状态。
- 立即发送该按键,确认实体设备响应。
- 重新学习同一按钮,确认复用原按钮记录,不生成重复按钮。
- 学习过程中离开页面,稍后返回,确认任务结果已持久化。
- 学习过程中强制结束 App,再次进入后,确认遗留学习状态被保守恢复为失败并允许重试。
5. 失败与离线
- 开始学习但不发送物理信号,确认超时显示为学习失败,而不是未学习。
- 断开红外控制器电源后尝试学习和发送,确认显示设备离线或对应领域错误。
- 恢复供电后重试,确认成功结果替换失败状态。
- 使 ABox 会话失效后操作,确认返回登录流程,不继续使用旧会话。
6. 排序、编辑与删除
- 调整遥控器顺序,离开并重新进入后确认顺序持久化。
- 编辑遥控器名称和布局允许修改的属性,确认列表与详情同步更新。
- 删除测试遥控器,确认其按钮和引用得到一致处理,不留下可进入的空详情页。
- 验证长英文按钮文本不会溢出、重叠或遮挡操作控件。
7. 活动记录
- 完成一次预置按键发送、一次自定义按键学习、一次发送失败和一次离线失败。
- 打开活动记录,确认事件按时间显示,并区分操作类型、来源和结果。
- 确认记录中没有原始红外码值、Token 或 SDK 响应。
结果记录
每条记录只包含:日期、App 版本与提交号、脱敏 profile、脱敏设备名、遥控器类型、操作类别、成功/失败/取消分类、粗粒度耗时、实体设备响应摘要和缺陷编号。