# 固定屏幕下无法安装 APK 问题 - 修复说明 ## 问题 在 bBeng-HeartRate-4.66-pad 工程固定屏幕(Kiosk 模式)下,无法拉起 APK 安装页面。 ## 原因 - 应用启用了 LockTask Mode(锁定任务模式) - 系统安装器不在 `setLockTaskPackages()` 白名单中 - 跳转安装界面被系统拦截 ## 解决方案 **在安装前临时退出 Kiosk,安装后自动恢复 Kiosk** ## 修改文件 ### 1. KioskManager.java(新增方法) ``` bBeng-HeartRate-4.66-pad/myLockView/src/main/java/com/ble/mylockview/admin/KioskManager.java ``` 新增: - `temporaryExitKiosk()` - 临时退出(不修改 kioskEnabled) - `resumeKiosk()` - 恢复 Kiosk 模式 ### 2. KioskModule.java(新建文件) ``` bBeng-HeartRate-4.66-pad/uniplugin_module/src/main/java/io/dcloud/uniplugin/KioskModule.java ``` 创建 uni-app 原生插件,暴露 Kiosk 控制方法给 Vue 层。 ### 3. dcloud_uniplugins.json(注册插件) ``` bBeng-HeartRate-4.66-pad/app/src/main/assets/dcloud_uniplugins.json ``` 添加 KioskModule 插件配置。 ### 4. build.gradle(添加依赖) ``` bBeng-HeartRate-4.66-pad/uniplugin_module/build.gradle ``` 添加 `implementation project(path: ':myLockView')` ### 5. app-info.vue(修改安装逻辑) ``` heart-app-hbuilder-x/pages/platform-page/app-info/app-info.vue ``` 新增方法: - `temporaryExitKioskAndInstall()` - 退出 Kiosk 并安装 - `installApk()` - 执行安装 - `resumeKiosk()` - 恢复 Kiosk ## 使用流程 ``` 点击更新/安装 ↓ 临时退出 Kiosk(300ms) ↓ 拉起安装界面 ✅ ↓ 安装完成/失败 ↓ 延迟 1 秒恢复 Kiosk ``` ## 编译部署 ```bash # 1. 编译 Android 项目 cd bBeng-HeartRate-4.66-pad ./gradlew assembleRelease # 2. 安装测试 adb install -r app/build/outputs/apk/release/app-release.apk ``` ## 测试要点 1. ✅ 固定屏幕下点击"更新此版本"能拉起安装界面 2. ✅ 点击"安装已下载的文件"能拉起安装界面 3. ✅ 取消安装后自动恢复固定屏幕 4. ✅ 安装失败后自动恢复固定屏幕 ## 查看日志 ```bash adb logcat -s KioskManager KioskModule ``` 关键日志: - `⏸️ 临时退出 Kiosk(用于 APK 安装)` - `▶️ 恢复 Kiosk` --- **修复时间**: 2026-01-26 **状态**: 已修复,待测试