2026-07-21
银歌 AI SDK 内置的插件安装与升级弹框能够执行下载,但应用层无法统一获取并展示下载地址、实时进度和失败状态。插件未安装、强制升级、基础设置激活中的插件处理也分别调用 SDK 弹框,交互和后续状态复查不便统一维护。
AiPluginUpdatePolicy 定义查询、可下载、下载中、已下载、安装中和失败状态,并集中管理按钮行为、进度边界和是否允许关闭。AiPluginUpdateManager 负责版本查询、下载回调、实时进度、下载结果校验和拉起安装器,不持有 Activity 强引用。AiPluginUpdateDialog 负责统一展示版本号、更新内容、真实下载地址、进度条、百分比、错误提示、重试和安装操作。PluginManager.queryAppInfo() 获取最新插件信息。PluginManager.downloadFile(),通过 onProgress(int) 更新 0 至 100 的实时进度。com.yingeo.ai.sdk。PluginManager.installApp() 拉起系统安装界面。下载期间和拉起安装器期间禁止取消弹框;查询或下载失败时保留明确错误提示并支持重试。若用户在系统安装器中取消,重新打开弹框仍可使用已下载 APK 再次安装。
AiReadinessGuard:插件未安装与必须升级提示的确认操作进入统一弹框。AiDishActivationManager:基础设置激活前发现插件缺失或必须升级时进入统一弹框。AiSdkManager:收到插件安装成功事件后重置下载状态并通知门禁重新检查。showPluginInstallDialog() 或 showPluginUpgradeDialog()。采用测试先行方式完成状态策略:
git diff --check 均纳入最终回归。本次未向目标设备安装 APK,因此真实下载进度、系统安装器取消/重试、安装成功广播和强制升级完成后的设备交互仍需现场验收。
本次仅完成实现、验证与记录,未执行暂存、提交、推送或分支切换。用户原有未相关修改保持不变。