让 Kiosk 模式(禁用锁屏、防退出)在应用启动时自动激活,无需在 JS 中调用任何代码。
app/src/main/java/com/YuyeTech/HeartRate/MyApplication.java - 自定义 Applicationapp/src/main/java/com/YuyeTech/HeartRate/KioskHelper.java - 锁屏控制工具app/src/main/res/xml/device_admin.xml - Device Admin 配置app/src/main/AndroidManifest.xml
com.YuyeTech.HeartRate.MyApplicationREADME_KIOSK_INTEGRATION.md - 集成方案总览KIOSK_SETUP_GUIDE.md - 详细配置指南QUICK_TEST_GUIDE.md - 快速测试指南PROJECT_STRUCTURE.md - 项目结构说明快速开始.md - 本文件适用于快速验证功能是否正确集成。
# 1. 清理并编译
gradlew clean assembleDebug
# 2. 安装到设备
adb install app/build/outputs/apk/debug/app-debug.apk
# 3. 查看日志(新开一个终端)
adb logcat | grep -E "MyApplication|KioskHelper|KioskManager"
# 4. 启动应用
adb shell am start -n com.YuyeTech.HeartRate/io.dcloud.PandoraEntry
期望看到的日志:
D MyApplication: Application 初始化
D MyApplication: ✅ 绑定 Kiosk 到: PandoraEntry
D KioskHelper: ✅ 屏幕保持常亮
W KioskHelper: ⚠️ 不是 Device Owner,无法禁用锁屏
如果看到以上日志,说明自动初始化成功!✅
可用功能:
适用于生产环境或完整功能测试。
# 1. 恢复出厂设置(重要!)
# 手动操作:设置 → 系统 → 重置 → 恢复出厂设置
# 2. 不要登录任何账号(包括 Google 账号)
# 3. 启用 USB 调试
# 设置 → 关于手机 → 连续点击版本号 7 次 → 开发者选项 → USB 调试
# 4. 编译并安装
gradlew assembleRelease
adb install app/build/outputs/apk/release/app-release.apk
# 5. 设置为 Device Owner
adb shell dpm set-device-owner com.YuyeTech.HeartRate/com.ble.mylockview.admin.KioskDeviceAdminReceiver
# 6. 验证是否成功
adb shell dumpsys device_policy | grep "Device Owner"
# 7. 启动应用并查看日志
adb logcat -c
adb shell am start -n com.YuyeTech.HeartRate/io.dcloud.PandoraEntry
adb logcat | grep -E "MyApplication|KioskHelper|KioskManager"
期望看到的日志:
D MyApplication: Application 初始化
D MyApplication: ✅ 绑定 Kiosk 到: PandoraEntry
D KioskHelper: ✅ 锁屏已禁用
D KioskHelper: ✅ 屏幕保持常亮
D KioskManager: ✅ LockTask 启用(一次)
可用功能:
# Debug 版本
gradlew assembleDebug
# Release 版本
gradlew assembleRelease
# 清理
gradlew clean
# 查看 Kiosk 相关日志
adb logcat | grep -E "KioskManager|MyApplication|KioskHelper"
# 查看 WiFi 相关日志
adb logcat | grep WifiModule
# 查看崩溃日志
adb logcat | grep -E "AndroidRuntime|FATAL"
# 清空日志
adb logcat -c
# 设置 Device Owner
adb shell dpm set-device-owner com.YuyeTech.HeartRate/com.ble.mylockview.admin.KioskDeviceAdminReceiver
# 验证 Device Owner
adb shell dumpsys device_policy | grep "Device Owner"
# 移除 Device Owner(应急)
adb shell dpm remove-active-admin com.YuyeTech.HeartRate/com.ble.mylockview.admin.KioskDeviceAdminReceiver
# 启动应用
adb shell am start -n com.YuyeTech.HeartRate/io.dcloud.PandoraEntry
# 强制停止应用
adb shell am force-stop com.YuyeTech.HeartRate
# 退出 LockTask 模式
adb shell am task lock stop
# 卸载应用
adb uninstall com.YuyeTech.HeartRate
A: 清理重新编译
gradlew clean
gradlew assembleDebug
A: 卸载旧版本
adb uninstall com.YuyeTech.HeartRate
adb install app/build/outputs/apk/debug/app-debug.apk
A: 检查过滤条件
# 使用更宽松的过滤
adb logcat | grep -i kiosk
# 或者查看所有日志
adb logcat
错误信息:Not allowed to set the device owner because there are already several users on the device
解决方法:
解决方法:
# 方法 1:退出 LockTask
adb shell am task lock stop
# 方法 2:强制停止
adb shell am force-stop com.YuyeTech.HeartRate
# 方法 3:移除 Device Owner
adb shell dpm remove-active-admin com.YuyeTech.HeartRate/com.ble.mylockview.admin.KioskDeviceAdminReceiver
README_KIOSK_INTEGRATION.mdKIOSK_SETUP_GUIDE.mdQUICK_TEST_GUIDE.mdPROJECT_STRUCTURE.md如果需要修改逻辑,关注以下文件:
文件:app/src/main/java/com/YuyeTech/HeartRate/MyApplication.java
位置:registerActivityLifecycleCallbacks() → onActivityCreated()
文件:app/src/main/java/com/YuyeTech/HeartRate/KioskHelper.java
方法:disableLockScreen(), keepScreenOn(), enableLockScreen()
文件:myLockView/src/main/java/com/ble/mylockview/admin/KioskManager.java
关键方法:attach(), enableLockTask(), exitKiosk(), interceptTouch()
Debug vs Release
密码安全
9527myLockView/.../KioskManager.java 第 55 行开机自启动
WiFi 模块
myWIFIView/src/main/java/com/ble/mywifiview/WifiModule.java当你看到以下完整的日志序列时,说明集成成功:
Device Owner 模式:
01-22 16:30:00.123 D MyApplication: Application 初始化
01-22 16:30:00.234 D MyApplication: ✅ 绑定 Kiosk 到: PandoraEntry
01-22 16:30:00.345 D KioskHelper: ✅ 锁屏已禁用
01-22 16:30:00.456 D KioskHelper: ✅ 屏幕保持常亮
01-22 16:30:00.567 D KioskManager: ✅ LockTask 启用(一次)
非 Device Owner 模式:
01-22 16:30:00.123 D MyApplication: Application 初始化
01-22 16:30:00.234 D MyApplication: ✅ 绑定 Kiosk 到: PandoraEntry
01-22 16:30:00.345 D KioskHelper: ✅ 屏幕保持常亮
01-22 16:30:00.456 W KioskHelper: ⚠️ 不是 Device Owner,无法禁用锁屏
01-22 16:30:00.567 D KioskManager: ❌ 非 DeviceOwner,Kiosk 无效(只会提示一次)
如果遇到问题,请按照以下步骤:
查看日志
adb logcat | grep -E "MyApplication|KioskHelper|KioskManager|ERROR"
检查配置
AndroidManifest.xml 中 Application 是否为 MyApplication参考文档
KIOSK_SETUP_GUIDE.md → 故障排查章节QUICK_TEST_GUIDE.md重置设备(最后手段)
# 移除 Device Owner
adb shell dpm remove-active-admin com.YuyeTech.HeartRate/com.ble.mylockview.admin.KioskDeviceAdminReceiver
# 卸载应用
adb uninstall com.YuyeTech.HeartRate
# 恢复出厂设置
# 手动操作:设置 → 系统 → 重置
祝你好运! 🚀
如果一切正常,你应该能在 5 分钟内完成基础测试,15 分钟内完成完整部署。