Improve controller behavior and update project requirements
This commit is contained in:
@@ -18,7 +18,7 @@ Android 平台以 Java 安全 API 实现 P-256 ECDH/HKDF-SHA256/AES-GCM,
|
||||
|
||||
扫描单轮 12 秒;点击重试开始新轮,不无限循环。自动重连扫描上次持久 ID 对应短编号,握手校验完整 ID,不因名称相同认错设备;候选完整 ID 不符则释放并报错,用户可重新扫描。App 最多一个 BluetoothGatt。每项 GATT 操作等待回调或超时后再执行下一项;迟到回调按连接 generation 丢弃。
|
||||
|
||||
用户控制队列优先,状态次之,缩略图与当前帧最低优先。单个预览在途,数据无变化不反复下载。背景立即停止轮询和缩略图,30 秒延迟任务释放连接;回前台取消延迟,Ready 则刷新,非 Ready 则重连上次设备。进程死亡不假设回调可执行,由设备心跳门限回收会话。
|
||||
用户控制队列优先,状态与当前帧次之,内容图片在空闲轮询时一次传一张。显示内容前台每 10 秒查询目录修订;全部可预览条目先传 16×16 PNG,第一轮尝试完成后再传 64×64 完整图。单个预览在途,数据无变化不反复下载。背景立即停止轮询和内容图片,30 秒延迟任务释放连接;回前台取消延迟,Ready 则刷新,非 Ready 则重连上次设备。进程死亡不假设回调可执行,由设备心跳门限回收会话。
|
||||
|
||||
普通操作请求超时 10 秒,扫描 WiFi 20 秒,切网任务最多轮询 60 秒后转“结果尚未确认,可重新读取”;超时不是事务回滚证据,不自动重发变更。
|
||||
|
||||
@@ -40,7 +40,7 @@ WiFi:扫描来自设备;允许手工 SSID;密码动作“保留/替换
|
||||
|
||||
Android 8–11 按平台要求申请前台定位扫描权限并解释用途,系统位置开关影响扫描时提供设置入口;12+ 申请 BLUETOOTH_SCAN/CONNECT,并声明扫描不用于定位。不申请后台定位、联系人、文件全盘访问或摄像头权限。权限拒绝后允许重试,永久拒绝显示系统设置入口;不在启动时重复轰炸权限弹窗。
|
||||
|
||||
本地 SharedPreferences 仅保存 last_device_id 与 client_name。缩略图仅驻留内存,每次断线/新连接清空;键为内容类型、条目 ID、修订,以连接隔离设备,最多 128 项或合计 8 MiB Base64 字符,按插入顺序淘汰。不是磁盘缓存,也不是 LRU。设备业务配置以核桃派为准,不自动恢复手机历史副本。禁用敏感测试数据备份;密钥和 WiFi 密码不持久化。
|
||||
本地 SharedPreferences 保存连接记忆与手机昵称。内容目录及两档图片存于 Android 专属 cacheDir:设备 ID 目录隔离,图片按类型、条目 ID、修订和档位散列命名;目录原子写入,图片读取验证 PNG 尺寸,整体最多 128 MiB 并按最近使用时间淘汰。内存保留最多 128 张或 8 MiB Base64 字符,可见项按需从磁盘回填。目录修订未变才复用;变化后完整翻页并清理失效图,断线不显示旧列表。软件设置可清空该缓存,不清除设备记忆。当前设备画面沿用原有会话缓存,不写磁盘。设备业务配置以核桃派为准,不自动恢复手机历史副本。禁用敏感测试数据备份;密钥和 WiFi 密码不持久化。
|
||||
|
||||
## 5. 设备侧集成
|
||||
|
||||
@@ -72,3 +72,7 @@ BlueZ D-Bus 接入作为可恢复模块,单独管理连接/广播,不在
|
||||
## 2026-09-27 界面修订
|
||||
|
||||
共享状态增加仅当前认证会话有效的 connectedDevice 扫描快照,以本次句柄关联按钮,持久身份仍使用完整设备 ID。扫描重置保留它,重复广播按句柄去重;所有会话结束清空关联。顶栏使用共享 Compose 跑马灯,只在溢出时无限循环,文本变化重启。两处预览复用居中卡片,标题按刷新按钮实际宽度预留对称空间。App 0.2.1/versionCode 4,仅 debug。
|
||||
|
||||
## Android 选测入口
|
||||
|
||||
遵循 [按影响选测](如何安卓测试/按影响选测.md)。日常变更不自动执行模拟器或 root 真机全量矩阵;独立 uiTest 使用真实 Compose 界面与 Controller、测试专用假平台,不替代物理 BLE。历史版本专项不作为每轮门槛。
|
||||
|
||||
Reference in New Issue
Block a user